一些ajax帮助

Some ajax help?

本文关键字:帮助 ajax 一些      更新时间:2023-09-26

我有一个php脚本,它接受一些用户表单输入,并根据该输入将一些文件打包成zip文件。问题是,有时服务器会出错,因此所有表单数据都会丢失。有人告诉我可以使用ajax,这样用户甚至不必更改页面。我从来没有使用过ajax,没有任何ajax经验的人很难访问http://api.jquery.com/jQuery.ajax/。

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

编辑:此外,是否有一种方法来发送一个ajax请求与javascript和jquery,如果它是一个提交的表单?

如何在PHP文件中设置返回值

只是在ajax页面中echo它将作为响应返回

简单教程

client.php

$.post('server.php',({parm:"1"}) function(data) {
  $('.result').html(data);
});

server.php

<?php
echo $_POST['parm'];
?>

结果为1

编辑OP注释是否有办法使用ajax,如果你是提交一个表单

  • 你可以使用jQuery form等插件
  • 使用提交
  • 如果你使用jquery验证插件,你可以使用提交处理程序选项
使用苏米特

$('#form').submit(function() {
 //your ajax call
  return false;
});

每个ajax函数都有一个函数参数来处理服务器返回。大多数都有参数msg,这是来自服务器的消息。服务器页面,例如PHP页面,您可以使用echo something将信息返回给ajax函数。下面是一个示例

$.ajax({
  url:yoururl,
  type:post,
  data:yourdata,
  success:function(msg){
      //here is the function dealing with infomation form server.
  }
});

通过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;
});