PHP が JSON を JQUERY AJAX 呼び出しに返す
この質問は、フォーム処理と応答を返すための PHP、JQUERY、および AJAX の統合に取り組みます。 JSON 形式。
PHP 実装
提供される PHP コードには、フォームの処理と電子メール送信の処理に必要な関数が含まれています。 JSON を返すには、json_encode を使用して配列を JSON 文字列に変換します。配列には、成功/失敗を示すリターン キーとメッセージ表示用の msg1 キーが含まれています。
<code class="php"><?php header('Content-Type: application/json'); touch('phpTouch.txt'); // process email $email = 1; if ($email) { $value = array('return' => 1, 'msg1' => 'Message sent OK, we will be in touch ASAP'); } else { $value = array('return' => 0, 'msg1' => 'Message Failed, please try later'); } $output = json_encode($value); echo $output; ?></code>
JQUERY および AJAX
JQUERY コードはフォーム検証とAJAX通信。成功コールバックとエラーコールバックを使用して、PHP スクリプトからの応答を処理します。ただし、このコードでは、特定の JSON 値を抽出して表示するのではなく、生のデータ オブジェクトが表示されます。
<code class="javascript">success: function (data) { alert("SUCCESS:"); for (var key in data) { $('#msgid').append(key); $('#msgid').append('=' + data[key] + '<br />'); } }, error: function (data) { alert("ERROR: "); for (var key in data) { $('#msgid').append(key); $('#msgid').append('=' + data[key] + '<br />'); } }</code>
解決策
JSON 値を正しく表示するには、 JSON 応答から戻り値と msg1 の値を抽出するための成功コールバック:
<code class="javascript">success: function (data) { alert("SUCCESS:"); $('#msgid').append('Return: ' + data.return + '<br />'); $('#msgid').append('Message: ' + data.msg1 + '<br />'); }</code>
これらの調整により、コードはフォームを正しく処理し、PHP から JSON 応答を返し、戻り値と msg1 を抽出して表示する必要があります。値。
以上がJQUERY AJAX 呼び出しで PHP からの JSON 応答を適切に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。