0

我想在不加载新的 php 页面的情况下提交表单。我的表单包含文件上传和 textarea 字段。基本上数据可以像博客一样,即必须提交大数据

我正在阅读一些关于 jquery-ajax 表单提交的教程

  • 本教程均未显示如何上传文件。任何人都可以帮助我吗?
  • 由于使用了get方法,jquery-ajax可以提交的数据大小是否有限制。如果是,我应该如何处理?
4

2 回答 2

2

您可以使用 iframe,这样您就不必刷新当前页面。

许多人直接使用插件。但是您可以很容易地自己完成此操作,并且具有 AJAX 请求的所有功能。

将表单提交到一个隐藏的 iframe,该 iframe 附加了一个加载事件处理程序,因此当提交表单时,您有一个回调函数,该函数实际上包含服务器响应(加载后 iframe 的 HTML)。

例子:

<form action="..." method="post" encrypt="application/x-www-form-urlencoded" target="workFrame" >
    <input type="file" name="file" />
    <input type="submit" />
</form>
<iframe id="workFrame" src="about:blank" style="display:none;"></iframe>

Javascript代码是:

(function () {
    $('form').on('submit', function () {
        //check if the form submission is valid, if so just let it submit
        //otherwise you could call `return false;` to stop the submission
    });

    $('#workFrame').on('load', function () {

        //get the response from the server
        var response = $(this).contents().find('body').html();

        //you can now access the server response in the `response` variable
        //this is the same as the success callback for a jQuery AJAX request
    });
});
于 2013-02-23T09:18:07.990 回答
0

如您所知,设置的限制不是浏览器。并且根据很多众所周知的指令,例如在 Apache 中这一段定义了参数 LimitRequestBody。此参数可以取值从 0 字节到 2 GB。在 PHP 中,还有一个名为 post_max_size 的指令。指定 POST 请求的大小。

于 2013-02-23T09:15:00.590 回答