2017-10-08 19 views
0

私が作成しているWordPressサイトのボタンをクリックするとファイルを保存する(csv)という問題があります。私はコードを最小限に単純化しましたが、それはまだ動作していません。ダウンロードを提案する代わりにPHPリダイレクト

マイテンプレートページコード:

<?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/test.phphttp://localhost/test/pagedetestから私をリダイレクトし、私はもちろん取得そのページは決して作成されていないので404です。

これは単なるテストケースなので、もう少し複雑にするために構築することができますが、これは動作しません。

私はPHPには単純なエコーに代わりfputcsv機能を使用してみました://出力し、代わりに、フォームのAJAX呼び出しを使用しますが、誰もが持っている場合、それは私に何も(エラーなしか何か)

を与えませんでしたなぜこれが起こっているのか、事前に感謝のアイデア!それは愚かな質問ですが、私のGoogle-FUが何かを上げていなかったと私は長い間、ワードプレスやPHPのいずれかで演奏されていない場合は

乾杯...

申し訳ありません!

答えて

0

action="test.php"は、現在のディレクトリ内のtest.phpというファイルにフォームを送信します。私はあなたのtest.phpがhttp://localhost/test/test.phpまたはhttp://localhost/test.phpにあると推測しています。絶対パス(/test.phpまたは/test/test.php)をアクションとして使用し、それが役立つかどうかを確認してください。

+0

答えをありがとう。私はあなたの解決策を試しましたが、ダイスはありませんhttp://localhost/test/pagedetest/test/test.phpまたはhttp://localhost/test.phpをリダイレクトとして取得します。私が理解できないのは、私のURLを変更しようとする理由です。私がAjax呼び出しを行うと、送信したデータを処理して、必要なものを返すだけです。なぜそれはここでそれを違うのでしょうか? – GunslingerPanda

+0

test.phpはどこにありますか?ブラウザの開発ツールに応じてどのようなリダイレクトが行われますか? – janh

+0

あなたは正しいトラックに私を置くと言った、明らかにあなたは明示的にget_template_uri関数でパスを指定する必要があります。 これをファイル名に追加すると、正常に動作します。 ありがとう! – GunslingerPanda

関連する問題