0

これに関する洞察をいただければ幸いです。基本的に、ユーザーが一度に5つのファイルをアップロードできるファイルアップロードフォームがあります。アップロード時に、3文字とタイムスタンプを追加します。チェックボックスがオンになっている場合は、ファイル名にチェックボックスの値を挿入します。

 <form id="form" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post" enctype="multipart/form-data">
<input name="file_up[]" type="file" class="file_up" size="16" maxlength=" " />
   CA<input name="state[]" type="checkbox" id="CA" value="CA" checked="checked" />
   NV<input name="state[]" type="checkbox" id="NV" value="NV" />
   UT<input name="state[]" type="checkbox" id="UT" value="UT" />
   AZ<input name="state[]" type="checkbox" id="AZ" value="AZ" />
<input name="file_up[]" type="file" class="file_up" size="16" maxlength=" " />
   CA<input name="state[]" type="checkbox" id="CA" value="CA" checked="checked" />
   NV<input name="state[]" type="checkbox" id="NV" value="NV" />
  UT<input name="state[]" type="checkbox" id="UT" value="UT" />
   AZ<input name="state[]" type="checkbox" id="AZ" value="AZ" />

ファイルフィールドのアップロードごとに、このような5つのブロックがあります。他の3つにはstate2[]などがあります。

ファイル名セクション:

$updir . '/'.'337-'.implode("", $_POST['state']).$timestamp. $nume_f

各行の「状態」値だけを取得するにはどうすればよいですか?したがって、最初の行でCAが選択されている場合は、そのCAを最初のファイルに追加するだけで、他のファイルには追加しません。チェックボックスの行を分離していません。チェックボックスの2番目のグループをstate1、次に3番目のstate2などにすることを考えました。

ファイルループは次のとおりです。

if (isset($_FILES['file_up'])) {
for($f=0; $f<count($_FILES['file_up']['name']); $f++)   {
$nume_f = $_FILES['file_up']['name'][$f];

最初の投稿での回答に感謝します。これは3回目の編集です。

考え?ありがとう!-ランディ

EDIT:  The solution was to tie $f=0, $f=1, etc to a new variable:
 if($f == 0)$nume_g = ($_POST['state1']);
 if($f == 1)$nume_g = ($_POST['state2']); etc..

したがって、各チェックボックスグループはファイル名に関連付けられています。ランディ、すべての入力に感謝します

4

1 に答える 1

0

それ以外の

$_POST['state']

、 書きます

implode("", $_POST['state']).

Implodeは、最初のパラメーターをセパレーターとして、配列フィールドを文字列にマージします。http://php.net/manual/en/function.implode.phpを確認してください

于 2013-01-13T22:29:29.407 に答える