0

投稿リクエストを行う機能があります。

$('#save').click( function() {
  ...
  $.ajax({
    type: 'POST',
    url: 'logic/save.php',
    data: { 'json': JSON.stringify( post ) },
    dataType: 'jsonp',
    success: function( data ) {
      console.log('success!')
    }
  });
} 

ご覧のとおり、リクエスト ハンドラは php で記述されており、mysql で操作を実行します。PHP とリクエストに関する知識が乏しいため、成功が見られません。コンソールに出力します。PHP コードは正常に実行され、mysql クエリはエラーなしで実行されます。

私が望むのは、js のコードが肯定的な応答 (200、OK など) と成功としてそれを受け取ることができるように、最後に php コードで何かを記述できるようにすることです! コンソールの行が表示されます(私は信じています)。

php ファイルにどのコードを追加すればよいですか?

更新:多くの人が php コードを要求したので、ここにそのリンクを示します。素早い返信ありがとうございます。

4

1 に答える 1

4

この場合、jsonp は必要ないため、最初に、jsonp から json に切り替える必要があります。以下の手順は、その変更を行ったことを前提としています。

クライアントに返信するとき、バグは PHP コードにあります。これを行うには、次の行を使用します。

print_r( "New item inserted.\n" );

ただし、jQuery は、エンドポイントから JSON が返されることを期待しています (実際には、プレーンテキストを ajax クライアントに返すことはほとんど正しい方法ではないため、そうすべきです)。上記の行を次のように変更することで、jQuery でこれを機能させることができます。

print json_encode( array('success' => true, 'message' => "New item inserted." ) );

クライアントの成功コールバックで自分自身を見つける必要があります。このコードは、成功ハンドラーで機能します。

{ // ...,
    success: function(response) {
        if (response.success) {
            alert(response.message);
        }
    }
}

ただし、おそらくアラート以外のものを使用することをお勧めします。しかし、それはあなた次第です。

于 2013-07-29T12:57:39.560 に答える