我在创建一个wordpress网站上点击按钮时提出保存文件(csv)的问题。我已将代码简化为最低限度,但仍然无效。
我的模板页面代码:
<?php
/*
Template Name: My Awesome Custom Page
*/
get_header(); ?>
<html>
<form style= "text-align:center;" name="getcsv" action="test.php" method="post">
<select id="ddl">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select> <br/>
<input name= "export_excel" type="submit" value="Extraire"/>
</form>
</html>
<?php get_footer();
test.php文件有:
<?php
if(isset($_POST["export_excel"]))
{
header( 'Content-type: application/xls' );
header( 'Content-Disposition: attachment; filename="test.xls"');
header( 'Expires: 0' );
header( 'Cache-Control: must-revalidate, post-check=0, pre-check=0' );
header( 'Pragma: public' );
$headers = array('Type of Activity', "Number of Activities", "Hours of Instruction");
$row_1 = array($_POST['ddl'], $_POST['ddl'], $_POST['ddl']);
$output = implode(',',$headers);
$output.= "\n";
$output.= implode(',',$row_1);
$output.= "\n";
}
?>
当我点击该按钮时,它会将我从http://localhost/test/pagedetest重定向到http://localhost/test/pagedetest/test.php,我当然会得到一个404,因为该页面从未创建过。
这只是一个测试案例,所以我可以在它上面构建一些更复杂的东西,但即使这样也行不通。
我尝试使用fputcsv函数代替只是简单回显到php://输出并使用ajax调用而不是表单但是没有给我任何东西(没有错误或任何东西)
如果有人知道为什么会发生这种情况,请提前感谢!
很抱歉,如果这是一个愚蠢的问题,但我的google-fu并没有找到任何东西,而且我还没有玩过wordpress或PHP很长时间......
干杯!
答案 0 :(得分:0)
action="test.php"
会将表单提交到当前目录中名为test.php的文件中。我猜你的test.php是http://localhost/test/test.php或http://localhost/test.php。使用绝对路径(/test.php
或/test/test.php
)作为您的操作,看看是否有帮助。