我的脚本运行正常,它提醒我数据已保存。但出于调试原因,我希望以html格式看到PHP(“Procees.php”)响应。 我可以在firebug中看到它,但我不知道如何使用jquery将其放入。 我的代码如下;
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
但网页上没有显示任何内容。
提前感谢您的帮助。
答案 0 :(得分:3)
你需要json_encode你的响应,因为你的jQuery期待json!
echo json_encode(array("doctype"=>$doctype, "paytype"=>$paytype));
答案 1 :(得分:1)
在AJAX请求期间由PHP输出的数据将位于data
回调函数的success
变量中。如果要将数据附加到页面上,则需要在成功函数中执行此操作。
$.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数据。要么a)将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);
}
});
答案 2 :(得分:0)
将此功能放入您的成功功能中。
$('#display').append(data);