0

ファイル入力タイプをチェックボックスにリンクするにはどうすればよいですか?

これは私がこれまでに持っているものです:

<input type="file" name="file_upload[0]"  /> <input type="checkbox" name="checkbox[0]"> checkbox 1 <br />
<input type="file" name="file_upload[1]"  /> <input type="checkbox" name="checkbox[1]"> checkbox 2 <br />
<input type="file" name="file_upload[2]"  /> <input type="checkbox" name="checkbox[2]"> checkbox 3 <br />
<input type="file" name="file_upload[3]"  /> <input type="checkbox" name="checkbox[3]"> checkbox 4 <br />

ここで、ファイルがアップロードされたときにPHPをチェックインする必要がありますが、対応するチェックボックスがオンになっています(できればループを使用)が、機能させることができません。

これは私がPHPで持っているものです:

if (isset($_FILES['file_upload[1]']) && isset($_FILES['checkbox[1]']))  {
    //do something
} else {
    //do something else
}
4

2 に答える 2

6

チェックボックスの入力タグを次のように変更する必要があります <input type="checkbox" name="checkbox[3]" value="1" >

value=""つまり、不足している属性を追加する必要があります

コメントで述べたように

if(isset($_POST['checkbox'][0])) { 代わりにチェックインする必要があります$_FILES

両方を印刷してみてくださいprint_r($_FILES) and print_r($_POST)...これにより、送信後に受信するデータの構造がわかります。

file_uploaded配列をループして、関連するchecboxインデックスが設定されているかどうかを確認できます。

于 2012-08-22T12:30:50.520 に答える
1

必要なループは次のように編成する必要があります。'$_FILES['file_upload']配列の各要素について、の対応する(同じインデックスを持つ)要素を確認し$_POST['checkbox']ます。例えば:

if (empty($_FILES['file_upload'])) { ... process 'no files sent' case ... }

$files_total = count($_FILES['file_upload']);

for ($i = 0; $i < $files_total; ++$i) {
  if ( $_FILES['file_upload'][$i] && !empty( $_POST['checkbox'][$i] ) ) {
    // .. do something
  }
  else {
    // .. do something else
  }
}
于 2012-08-22T12:37:01.337 に答える