我有一个PHP脚本,它接受一些用户表单输入,并根据该输入将一些文件打包成一个zip。问题是有时服务器出错,所以所有表单数据都丢失了。我被告知我可以使用ajax,以便用户甚至不必更改页面。我从未使用过ajax,在没有任何ajax经验的情况下查看http://api.jquery.com/jQuery.ajax/非常困难。
页面显示您可以接受来自ajax调用的返回。如何在PHP文件中为ajax调用设置返回值?如果服务器出现ajax调用错误,我怎么知道?
编辑:另外,有没有办法用javascript和jquery发送ajax请求,好像它是一个提交的表单?
答案 0 :(得分:0)
如何在PHP文件中设置返回
在ajax页面中回显,它将作为响应返回
简单教程
<强> client.php 强>
$.post('server.php',({parm:"1"}) function(data) {
$('.result').html(data);
});
<强> server.php 强>
<?php
echo $_POST['parm'];
?>
结果将为1
编辑OP评论 有没有办法像使用提交表单一样使用ajax
是的,有
使用sumit
$('#form').submit(function() {
//your ajax call
return false;
});
答案 1 :(得分:0)
每个ajax函数都有一个函数param来处理服务器返回。其中大多数都有param msg,即来自服务器的消息。 服务器页面,例如php页面,您可以使用echo something将信息返回给ajax函数。下面是一个例子
$.ajax({
url:yoururl,
type:post,
data:yourdata,
success:function(msg){
//here is the function dealing with infomation form server.
}
});
答案 2 :(得分:0)
通过AJAX从PHP获取信息到JavaScript的最简单方法是使用json_encode()
将任何PHP数据编码为JSON。
这是一个简短的例子,假设你的服务器错误是可以捕获的
<?php
try {
// process $_POST data
// zip files, etc
echo json_encode(array('status' => true));
} catch (Exception $e) {
$data = array(
'status' => false,
'message' => $e->getMessage()
);
echo json_encode($data);
}
然后,您的jQuery代码可能看起来像这样
$('form').submit(function() {
var data = $(this).serialize();
$.ajax(this.action, {
data: data,
type: 'POST',
dataType: 'json',
success: function(data, textStatus, jqXHR) {
if (!data.status) {
alert(data.message);
return;
}
// otherwise, everything worked ok
},
error: error(jqXHR, textStatus, errorThrown) {
// handle HTTP errors here
}
});
return false;
});