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 回答