我可以在jquery $ ajax中获得更多变量而不是字符串吗?

时间:2009-05-20 08:44:37

标签: php jquery variables

我有这个脚本:

$.ajax({    
    url: 'submit_to_db.php',
    type: 'POST',
    data: 'name=' + name + '&email=' + email + '&comments=' + comments,

success: function(result) {
    $('#response').remove();
    $('#container').append('<p id="response">' + result + '</p>');
    $('#loading').fadeOut(500, function() {
    $(this).remove();
});

}
});

然后在我的php文件中,插入到数据库后,我回显“注释更新”,然后追加到我的容器并慢慢淡出。与此同时,我也希望将新注释插入到容器中。所以我试着回应“评论已更新!&amp; com =”。$ comment;但它以字符串而不是2个变量返回。 \

编辑:

太奇怪了,我的php文件中未定义,

$ comment = $ _POST ['comment']

我的js或php代码有什么问题吗?

2 个答案:

答案 0 :(得分:2)

响应不包含变量。它包含文本,即您提出的请求的结果。 我建议使用JSON。

#in submit_to_db.php
$response = array();

if($submitted) { #if the comment was inserted successfully
  $response['status'] = 'OK';
  $response['message'] = 'Your comment was added';
  $response['comment'] = $_POST['comments'];
}
else {
  $response['status'] = 'ERROR';
  $response['error'] = 'You must enter your name'; #just an example
}
echo json_encode($response);
#would yield {"status":"OK","comment":"the comment just added"}


#in yourJsFile.js
$.ajax({    
    url: 'submit_to_db.php',
    type: 'POST',
    data: 'name=' + name + '&email=' + email + '&comments=' + comments,
    dataType: 'json',
    success: function(response) {

        if(response.status == 'OK') {
           $('#response').remove();
           $('#container').append('<p id="response">' + response.message + '</p>');
           $('#loading').fadeOut(500, function() {
             $(this).remove();
           });

           $('#comments').append('<li>' + response.comment + '</li>'); //just an example
        }
        else {
           $('#container').append('<p id="response">' + response.error + '</p>');
        }
    }
});
关于JSON的

More info

答案 1 :(得分:0)

只需要一个可以操作客户端的JSON对象:它可以是一个简单的字符串,一个数组,一个复杂的对象树。

查看$.ajax请求类型;你可以在网上找到很多样本。