一些ajax有帮助吗?

时间:2011-08-26 03:42:16

标签: php javascript jquery ajax

我有一个PHP脚本,它接受一些用户表单输入,并根据该输入将一些文件打包成一个zip。问题是有时服务器出错,所以所有表单数据都丢失了。我被告知我可以使用ajax,以便用户甚至不必更改页面。我从未使用过ajax,在没有任何ajax经验的情况下查看http://api.jquery.com/jQuery.ajax/非常困难。

页面显示您可以接受来自ajax调用的返回。如何在PHP文件中为ajax调用设置返回值?如果服务器出现ajax调用错误,我怎么知道?

编辑:另外,有没有办法用javascript和jquery发送ajax请求,好像它是一个提交的表单?

3 个答案:

答案 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;
});