0

checkboxesによって作成されたリストがありますwhile loopが、フォームが送信されるcheckboxesとクリアされます。unique idレコードの値を隠しフィールドに入れてから、チェック済みとしてif queryマークする前に使用しようとしましたcheckboxが、何もしません

<?php 
    while($row = mysqli_fetch_array($result)){
    $posted = $row['auditID'];
?>
 <tr class="hover">
    <td width="180"><? echo $row['auditName']; ?>
       <input type="hidden" name="audit_id_confirm" value="<? echo $row['auditID'];?>">
    </td>
    <td width="33"><input type="checkbox" name="audit_selected[]"
       value="<? echo $row['auditID'];?>" 
       <?php if($_POST['audit_id_confirm'] == $posted){ echo "checked"; }?>>
    </td>  
 </tr>
<?php
    }
?>
4

3 に答える 3

4

id=f をチェックして並べ替えました id 番号は、投稿された配列にありました。

<?php
    $selected = $_POST['audit_selected'];

    while($row = mysqli_fetch_array($result)){
        $audit = $row['auditID'];
        if(in_array($audit, $selected)) {
               $check="checked='checked'";
        }else{
           $check = '';
        } ?>
        <tr class="hover">
            <td width="180">
                <?php echo $row['auditName'].' '.$num_audited; ?></td><td width="33">    <input type="checkbox" name="audit_selected[]" value="<?php echo $row['auditID'];?>" <?php echo $check; ?> >
            </td>  
        </tr>
    <?php }
?>
于 2013-09-07T19:18:03.557 に答える
0

テーブルに保存する必要がある情報の 1 つは、チェックボックスの状態です。したがって、テーブルに新しい列を作成し、「checkboxstate」と呼ぶことができます。コード内で、次のコードを使用してチェックボックスを挿入します。

<input type="checkbox" name="<?php echo($posted); ?>">

ここまでで、$posted と同じ名前のチェックボックスをいくつか作成しました。つまり、各チェックボックスには、その行の「$posted」値の名前が付けられます。

あとは、フォームを送信し、TRUE または FALSE を返すチェックボックス情報を保存するだけです。それをテーブルの "checkboxstate" 列に保存します。

したがって、テーブルにはいくつかの列を持つ一連の行があり、列の1つは「checkboxstate」で、値はTRUEまたはFALSEのいずれかになります。

この時点で、問題はほぼ解決しました。あとは、チェックされたチェックボックスまたはチェックされていないチェックボックスを表示する単純な if を挿入するだけです。

<?php
while($row = mysqli_fetch_array($result)){
$posted = $row['auditID'];
$cbs = $row['checkboxstate'];
?>
<tr class="hover">
<td width="180"><? echo $row['auditName']; ?></td>
<td width="33">
<?php if($cbs == "true") echo "<input type='checkbox' name='$posted' checked='checked'>"; else echo "<input type='checkbox' name='$posted'>"; 
</td>  
</tr>
<?php
}
?>
于 2013-09-07T18:32:56.927 に答える
0
<?php if($_POST['audit_id_confirm'] == $posted){ echo "checked"; }?>>

上記の行を次のように置き換えます。

<?php if($_POST['audit_id_confirm'] == $posted){ echo "checked='checked'"; }?>>

checkedHtml エンティティに属性を適切に提供していません。

于 2013-09-07T18:12:30.677 に答える