0

mySQL にデータを挿入するフォームがあります。動作しますが、何かが起こった場合に備えてエラー処理を追加しようとしています。Insert ステートメントを壊すと、mySQL は停止しますが、まだフロント エンドで成功メッセージが表示されます。私は何を間違っていますか?

AJAX

  function postData(){
  var employeeName = jQuery('#employeeName').val();
  var hireDate = jQuery('#hireDate').val();
  var position = jQuery('#position').val();
  var location = jQuery('#location').val();
  var interveiwer = jQuery('#interviewersID').val();
  var q01 = jQuery('#q01').val();
  var q02 = jQuery('#q02').val();
  var q03 = jQuery('#q03').val();
  var q04 = jQuery('#q04').val();
  var q05 = jQuery('#q05').val();
  var summary = jQuery('#summary').val();

  jQuery.ajax({
      type: 'POST',
      url: 'queryDay.php',
      data: 'employeeName='+ employeeName +'&hireDate='+ hireDate +'&position='+ position +'&location='+ location +'&interveiwer='+ interveiwer +'&q01='+ q01 +'&q02='+ q02 +'&q03='+ q03 +'&q04='+ q04 +'&q05='+ q05 +'&summary='+ summary,
      success: function(){
          jQuery('#formSubmitted').show();
      },
      error: function(jqXHR, textStatus, errorThrown){
          jQuery('#returnError').html(errorThrown);
          jQuery('#formError').show();
      }
  });
};

PHP

require_once 'config.php';

$employeeName = $_POST['employeeName'];
$hireDate = $_POST['hireDate'];
$position = $_POST['position'];
$location = $_POST['location'];
$interviewerID = $_POST['interveiwer'];
$q01 = $_POST['q01'];
$q02 = $_POST['q02'];
$q03 = $_POST['q03'];
$q04 = $_POST['q04'];
$q05 = $_POST['q05'];
$summary = $_POST['summary'];

mysql_query("INSERT INTO employee (name, hiredate, position, location) VALUES ('$employeeName', '$hireDate', '$position', '$location')") or die (mysql_error());

$employeeID = mysql_insert_id();

mysql_query("INSERT INTO day (employee, interviewer, datetaken, q01, q02, q03, q04, q05, summary) VALUES ('$employeeID', '$interviewerID', NOW(), '$q01', '$q02', '$q03', '$q04', '$q05', '$summary')") or die (mysql_error());
4

1 に答える 1

1

問題はあなたの頭にあります

mysql エラー ページが 200 オーケー ヘッダーを返しています。これをエラー ヘッダーに変更する必要があります。jquery はそれをエラーとして検出します。そうしないと、成功と見なされます。

または、mysql エラーをキャッチして、クライアント側でキャッチして読み取るテキストを返すこともできますが、これは成功ハンドラー内でキャッチされます。

于 2012-10-17T23:09:59.427 に答える