2

jQueryを使用してフォームをサーバー上のphpファイルに送信します。すべてが機能します...(phpファイルは正しいpost変数を取得し、データベースエントリを作成します。)しかし、応答では、「データ」が不安定になることがあります。

$('#form_submit').click( function() {
    $.post("path/to/script.php", $('#form').serialize(), function(data) {
        if ( data.status == 1 ) {
            alert('awesome sauce');
        } else {
            alert('crap');
        }
    }, "json");
});

phpスクリプトは(成功すると)戻ります

$response['status'] = 1;
$response['message'] = 'worked';
echo json_encode($response);
exit();

私はたくさんのがらくたを手に入れています、そして十分な素晴らしいソースではありません。

'data.status'が定義されていない場合と、定義されていない場合がある理由を誰かが知っていますか?

4

3 に答える 3

3

このようにしてみてください>

$('#form_submit').click( function() {
$.post("path/to/script.php", $('#form').serialize(), function(data) {
var obj = jQuery.parseJSON(data);
    if ( obj.status == 1 ) {
        alert('awesome sauce');
    } else {
        alert('crap');
    }
});
});
于 2012-09-29T21:07:34.727 に答える
2

exit()は、出力バッファリングに関してどのように動作しますか?出力バッファをフラッシュしますか?

于 2012-09-29T21:05:35.773 に答える
0

これを試してください:

$('#form_submit').click( function() {
    $.post("path/to/script.php", $('#form').serialize())
     .success(function(){
        alert('awesome sauce');
     }).error(function(){
        alert('crap');
     });
});
于 2012-09-29T21:04:29.523 に答える