我有这个脚本:
$.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代码有什么问题吗?
答案 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的
答案 1 :(得分:0)
只需要一个可以操作客户端的JSON对象:它可以是一个简单的字符串,一个数组,一个复杂的对象树。
查看$.ajax请求类型;你可以在网上找到很多样本。