php - 标题和退出()导致无响应的表单提交

标签 php html

问题 下载 CSV 一次后,表单不发送提交请求。

目的:选择一些下载条件后下载 CSV 信息文件。

PHP 脚本:

export.php显示一个 HTML 表单,允许用户选择某些条件(基本上设置几个变量,然后提交这些条件以下载 CSV 文件。

exportEntrants.php使用表单设置的那些变量从数据库中检索适当的数据,创建 CSV 数据,然后将其作为下载提供给用户。

所以在export.php我们有以下片段:

require_once 'exportEntrants.php';
if(/*the form is submitted*/){
    export($criteria);
}
else{
    // Display the HTML Form
}

第一次提交表单时成功调用exportEntrants.php脚本。

然后在exportEntrants.php数据已正确创建并使用以下方式下载:

function download($content,$title) {
        header('Content-Description: File Transfer');
        header("Content-type: application/csv");
        header('Content-Disposition: attachment; filename="'.$title.'.csv";');
        echo $content;
        exit();
    }

之后,下载工作正常,CSV 是正确的。但是在屏幕上,用户仍然可以看到表单,因此再次单击“提交”按钮应该会触发 if。上述声明,并允许我使用我认为合适的相同或不同标准再次下载文件。

但这并没有发生,什么也没有发生。表单仍然显示在屏幕上,屏幕上没有任何变化,但是提交表单不会重新加载页面或引起任何操作。

谁能看出是什么导致了这个问题?我将根据需要提供任何其他信息。

谢谢。

编辑 以回应下方 Hakre 的评论。

  • 禁用 Javascript 没有任何区别。

  • 此问题已在 Firefox 7.0.1 和 Chrome 14 中测试过。我还没有尝试过 IE 或 Safari。

  • 表单的 HTML 如下(我没有包括表单的标准部分,因为它们工作正常,并且表单是由一个相当复杂的函数生成的,所以它不是一小段 HTML(很多div 和跨度):

    <form action="/admin/export/export.php" method="post" name="exportForm" onsubmit="return formSubmit()"><input type="submit" name="submit_butt" value="EXPORT" class="button"></form>

最佳答案

当您反复按下按钮时,请求未被发送的事实似乎表明客户端存在问题。检查客户端的 formSubmit() 函数或页面源,看看附件下载是否以某种方式搞砸了 Javascript。

关于php - 标题和退出()导致无响应的表单提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7752733/

相关文章:

php - 使用 regexr 工具识别 (weat)her

php - 我如何将这个 1471323637 转换为时间

javascript - 如何增加第三方小部件短代码按钮的大小。下面是代码

HTML Accordion 第一个无法自动关闭 CSS Bootstrap

Jquery Canvas 云插件 - 如何使用 CSS 设置 Canvas 元素的样式

php - 使用复选框作为 mysql 表中每条记录的输入

php - Laravel 文件上传 : Accessing the file from server

android - 用于打开移动应用程序的 HTML 按钮

PHP:持久变量值

javascript - 滚动时如何在 div 中固定 html 表头?