2

この Jquery AJAX メソッドを初めて使用します。だから私はJqueryでAJAX呼び出しを行っています。私のPHPスクリプトでは、データ文字列を渡して変数をバインドする前に、データベースから条件が真であることを確認してから、そのクエリを実行しています。スクリプトとデータベース挿入の両方が正しく機能します。

私の質問は、PHP スクリプトから戻ったときに AJAX 呼び出しでエラー メッセージを表示するにはどうすればよいですか?

JS


$.ajax({
type: "POST",
url: 'submit_form.php',
data: dataString,
error: function() { alert('Error'); },
success: function() { alert('Success'); }
});

SUBMIT_FORM.PHP

if ( count of rows in db < x  )
 {

return false;
exit();

}

この条件が true の場合、スクリプトの実行を停止し、AJAX 関数でエラー条件を実行します。


elseif ($stmt = $mysqli->prepare("INSERT INTO blah (stuff, morestuff) values (?, ?)")) {

 /* Bind our params */
  $stmt->bind_param("ss", $param1, $param1);

        /* Set our params */
$param1= $_POST["name"];
$param2= $_POST["email"];


/* Execute the prepared Statement */
$stmt->execute();
/* Close the statement */
$stmt->close(); 
}

最初の条件が false の場合、現在実行中の ajax 呼び出しで成功関数を返したいと考えています。

4

4 に答える 4

7

のエラー ハンドラを呼び出すには$.ajax、PHP で次のコードを記述します (FastCGI 用)。

header('Status: 404 Not found');
exit;

または、header('HTTP/1.0 404 Not Found')FastCGI を使用していない場合に使用します。

個人的には、Web サーバーのエラーとアプリケーションのエラーの境界があいまいになるため、このアプローチは使用しません。

次のようなエラーメカニズムを使用したほうがよいでしょう。

echo json_encode(array('error' => array(
    'message' => 'Error message',
    'code' => 123,
)));
exit;

成功ハンドラ内:

if (data.error) {
    alert(data.error.message);
}
于 2012-10-24T06:51:14.243 に答える
2

jquery でエラー コマンドを実行する場合は throw new Exception("Invalid");、php コード内 (エラーが呼び出される場所) を使用してみてください。

これにより、http サーバーはエラー コード 500 を JavaScript コードに返します。

于 2012-10-24T06:45:04.263 に答える
2

あなたのコンセプトは間違っています。error condtion は ajax 呼び出しのエラーを意味します コードを次のように変更します

$.ajax({
type: "POST",
url: 'submit_form.php',
data: dataString,
error: function() {
 alert('Error'); //here the error is the error in ajax call.eg failing to call or a 404..etc
 },
success: function(msg) {
if(msg=='error'){
   alert('Error'); //this is the error you are looking for
}else{
 alert('Success'); 
}

}
});

あなたのPHP

if ( count of rows in db < x  )
 {
echo 'error'; //this is  enough
exit;

}
于 2012-10-24T06:46:23.300 に答える
0

jqueryによると、jqueryのエラー設定については少し混乱していると思います

エラー:リクエストが失敗した場合に呼び出される関数。

したがって、エラーコードは次の理由でのみ発生します

404エラー–ajaxファイルが見つかりませんエラー

500エラー–ajax内部システムエラー

于 2012-10-24T06:47:09.080 に答える