jQuery的AJAX没有PHP响应
我的脚本运行正常,并通知我的数据被保存。但为了调试的原因,我希望看到PHP(“Procees.php”)响应以及html格式。 我可以看到它在萤火,但我不知道怎么了把它使用jQuery。我的代码如下;jQuery的AJAX没有PHP响应
var dataString ='doctype='+ doctype + '&paytype=' + paytype + '&docno=' + docno + '&bookno=' + bookno + '&prname=' + prname +'&pename='+pename+'&paydate='+paydate+'&inpdate='+indate
+'&e1='+e1 +'&e2='+e2 +'&e3='+e3 +'&e4='+e4 +'&e5='+e5 +'&e6='+e6 +'&e7='+e7 +'&e8='+e8
+'&accname1='+accname1 +'&accname2='+accname2 +'&accname3='+accname3 +'&accname4='+accname4 +'&accname5='+accname5 +'&accname6='+accname6 +'&accname7='+accname7 +'&accname8='+accname8
+'&dr1='+dr1 +'&dr2='+dr2 +'&dr3='+dr3 +'&dr4='+dr4 +'&dr5='+dr5 +'&dr6='+dr6 +'&dr7='+dr7 +'&dr8='+dr8
+'&cr1='+cr1 +'&cr2='+cr2 +'&cr3='+cr3+'&cr4='+cr4 +'&cr5='+cr5 +'&cr6='+cr6 +'&cr7='+cr7 +'&cr8='+cr8 +'&ref='+ref;
//alert (dataString);return false;
$.ajax({
type: "POST",
url: "bin/process.php",
data: dataString,
cache:false,
datatype: 'json',
success: function(data) {
$('#display').html("<h2>Data submitted!</h2>")
.append("<p>Wait........</p>")
.hide()
.fadeIn(1500, function() {
$('#display').append("<img id='checkmark' src='images/check-black.jpg' />");
$('#display').html("<h3>Being Processed...</h3>")
.fadeIn(1500, function() {
$('#display').append("Saved <img id='checkmark' src='images/check-black.jpg' />")
$('#thisfrm').get(0).reset();
$("#indate").val(indate)
});
});
}
});
return false;
我的PHP回声
echo 'This is processing file.\n';
$doctype = $_REQUEST['doctype'];
$paytype = $_REQUEST['paytype'];
$docno = $_REQUEST['docno'];
$bookno = $_REQUEST['bookno'];
$prname = $_REQUEST['prname'];
$pename = $_REQUEST['pename'];
$paydate = $_REQUEST['paydate'];
$inpdate = $_REQUEST['inpdate'];
$ref = $_REQUEST['ref'];
echo $doctype."<br>";
echo $paytype."<br>";
....
... and so on
,但它没有显示anywahere网页上。
预先感谢任何帮助。
即AJAX请求期间由PHP输出的数据将在你success
回调函数的data
变量。如果你想将数据附加到你的页面上,你需要在你的成功功能中这样做。
$.ajax({
type: "POST",
url: "bin/process.php",
data: dataString,
cache:false,
success: function(data) {
// the data variable contains all PHP output during this request
$('#display').html(data);
}
});
另外请注意,您的脚本当前指定的,它是一个JSON请求 - 这jQuery的应该把输出作为JSON数据。但是,您正在输出PHP代码片段中的text/html数据。无论是)附加你的HTML到一个变量,然后调用print json_encode($mydata);
,或b)从请求删除datatype
财产。 jQuery将“自动检测”响应类型。上面的例子假设你不改变PHP代码,下面是关于如何正确使用JSON而不是细节(改变PHP需要)。
要做到JSON的方法,而是采用echo
,使用一个变量:
$html = '';
$html .= 'Doctype: '.$doctype;
$html .= 'Something elese: '.$something_else;
// etc...
die(json_encode(array('html'=>$html)));
那么你的jQuery的AJAX功能如下:
$.ajax({
type: "POST",
url: "bin/process.php",
data: dataString,
cache:false,
datatype: 'json',
success: function(data) {
$('#display').html(data.html);
}
});
克里斯我很高兴迅速得到答案。非常感谢 – user837168
你需要json_encode你的回应,因为你的jQuery期待JSON!
echo json_encode(array("doctype"=>$doctype, "paytype"=>$paytype));
将这个你成功函数中。
$('#display').append(data);
您是否注意到Firebug中显示响应HTML格式的选项卡? – JJJ