2012-02-27 10 views
0

私は間違った構文を使用しているか、間違った方法でこの問題に取り掛かります。各ダウンロードファイルのPHP

このphpファイルを参照するhtml文書には、単純なチェックボックスのリストがあります。ユーザーはボックスにチェックマークを付け、提出をヒットします。これは、ユーザーに各ファイルの実行または保存を促す目的で開始されます。チェックマークがtest1.txt、test2.txt、およびtest3.txtの場合は、それぞれのポップアップが表示されます(ブラウザがIEの場合)。

「最後の」チェックマークが付いたアイテムだけがダウンロードされ、残りはダウンロードされないという問題があります。見つかったファイルごとにポップアップウィンドウを開くことを考えましたが効果はありません。 echo $ filenameを使用すると、チェックマークが付いた各エントリが正しく表示され、PHPスクリプトに複数のファイル名が正しく表示されるように見えます。誰かが私を正しい方向に向けることができますか? window.openパラメータの$ファイル名が正しい構文で現在使用されていないことは間違いありません。ここで

はスクリプトです:

<?php 

foreach($_POST['files'] as $filename) { 

echo "<SCRIPT language=\"JavaScript1.2\">function openwindow() {window.open ('$filename', 'execute','location=1,status=1,scrollbars=1, width=500,height=500');}</script><body onload=\"openwindow()\"></body>"; 

    } 

?> 
+0

を動作するはずです。複数の ''要素を持つこともできません。 – ceejayoz

+0

はfopen()が良い選択でしょうか?私はそれを試して、許可のエラーを取得し続けた。テスト目的のディレクトリは777に設定され、php iniファイルのfopenオプションはON(有効)に設定されていました。 javascriptの場合よりもこれを行うための良い方法があるはずですか? –

+0

「fopen」と「window.open」は大きく異なることをします。 'fopen'はユーザのブラウザ上で何もしません。サーバー側です – ceejayoz

答えて

1

は、あなただけの繰り返し新しい定義で `openwindow()`関数を上書きしている

<html> 
<head> 
<script> 
function openwindow(filename) {window.open (filename, 'execute','location=1,status=1,scrollbars=1, width=500,height=500');} 

<?php 
foreach($_POST['files'] as $filename) { 

echo "openwindow('".$filename."');"; 

} 
?> 

</script> 
</head> 
+0

''は '

関連する問題