问题下载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
}
Run Code Online (Sandbox Code Playgroud)
在第一次提交表单时成功调用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();
}
Run Code Online (Sandbox Code Playgroud)
之后,下载工作正常,CSV正确.但是在屏幕上,表单仍然可供用户看到,因此再次单击"提交"按钮应触发上述if语句,并允许我使用我认为合适的相同或不同标准再次下载文件.
但这没有发生,没有任何反应.表单仍然显示在屏幕上,屏幕上根本没有任何变化,但提交表单不会重新加载页面或导致任何操作.
谁能看到可能导致这个问题的原因?我会根据需要提供任何其他信息.
谢谢.
编辑回应以下Hakre的评论.
禁用Javascript没有任何区别.
此问题已在Firefox 7.0.1和Chrome 14中测试过.我还没有尝试过IE或Safari.
表单的HTML如下所示(我没有包含表单的标准部分,因为它们工作正常,表单是由一个相当复杂的函数生成的,因此它不是一小段HTML(很多div和spans):
<form action="/admin/export/export.php" method="post" name="exportForm" onsubmit="return formSubmit()"><input type="submit" name="submit_butt" value="EXPORT" class="button"></form>