0

PHPで生成されたフォームがあります

以下は私のaccount.phpにあります $student_id はセッションによって設定されており、そのstudent_idに関連付けられているすべてのfile_namesを見つけています。その生徒の各ファイル名がチェックボックス形式で表示され、各チェックボックスの下に説明が入力されている、php を使用して HTML フォームを生成しました。

<?php 
$find = mysql_query("SELECT file_name FROM chemlab_files WHERE student_id = 
'$student_id'") or die  ("Could not search!");
while($row = mysql_fetch_array($find)){
$file_name = $row['file_name'];
$_SESSION['file_name'] = $file_name;
echo "<label class='checkbox'><input type='checkbox' name='file_name[]'    
value='{$file_name}'>$file_name</label><br><input type='text' name='description[]'    
value='' placeholder='description'>";
}
?>

これは現在、handler.php の一部です

if(is_array($_POST['description'])){
foreach(str_replace('#', '', $_POST['description']) as $strip){ 
                $description_backslash = $strip . '/';
                $description = mysql_real_escape_string($strip);
                $query = "INSERT INTO file_list(description) VALUE ('$description')";
                $q= mysql_query($query) or die ('Error posting data');
                //print_r($description);
                //print '<br>';
            }
4

1 に答える 1

0

チェックされていないチェックボックスはサーバーに送信されないため、すべてのチェックボックスがチェックされていない場合、チェックボックスのインデックスとfile_name入力が一致しなくなります。

この問題を回避するには、フォームフィールドにインデックスを追加して、何が何descriptionに属するかを把握file_nameし、'をループして、description設定されていないものを破棄できるようにする必要があります。

于 2013-02-28T01:32:17.840 に答える