我想知道当action =“any.php”提交表单时如何显示“加载”图像

时间:2010-07-26 20:08:47

标签: php jquery ajax forms

我希望用PHP发布时使用jQuery显示Loader图像Simple action =“search.php”不是ajax post或jquery post 并感谢所有

1 个答案:

答案 0 :(得分:1)

如果不使用AJAX,这个问题无法以有意义的方式解决。换句话说,您需要AJAX来显示“加载”图像,而表单提交的响应由服务器处理。

如果我理解正确,那么你有一个表格:

<form action="search.php" method="post">
    ...
</form>

它作为常规HTML表单处理。页面将数据传递给使用PHP处理它的服务器。如果没有AJAX,您无法找到表单的响应,搜索结果何时准备就绪。

通常,所做的是使用AJAX将表单提交给服务器。表单由服务器处理(PHP完成其工作)。在此期间,显示“搜索”图像。然后,当服务器响应时,将删除图像并显示搜索结果。

在页面上使用jQuery和AJAX可以这样做:

jsFiddle example

  // The form has an id of "theForm".
  // This function defines what happens when it is submitted.
$('#theForm').submit(function() {

      // Replace the form w the search icon.
    $("#theForm").html('Searching...<br/>' +
        '<img src="http://i.stack.imgur.com/ZK0sq.gif" />');

      // Make the search request to the PHP page.
      // The 3 arguments are: 
      //     1 - The url. 2 - the data sent 
      //     3 - The function called when data is sent back
    $.post("/ajax_html_echo/", $(this).serialize(), function(result){

          // Here we replace the search image with the data
        $("#page").html(response);
    });

      // Cancel the regular submission of the form.
      // You have to do this, or the page will change and things won't work.
    return false;
});

上面的好处是,如果JS关闭,它会很好地降级,因为你仍然有常规的HTML表单和它的常规提交功能,如果JS打开,那么它会阻止这个常规功能return false并使用AJAX。

使用Jquery:
.submit()
.html()
.post()
.serialize()