0

一意の ID を持つ DB からフェッチされる行に異なるデータを含むフォームがあります。また、各データには、特定の値を持つ 2 つのチェックボックスがあります。

データの一意の ID と、チェックされているかどうかに関係なく、2 つのチェックボックスの値を取得する必要があります。

Example:

General Config            [] Read    [] Write
Manage Admin Account      [] Read    [] Write
Manage Adverts            [] Read    [] Write
Manage Articles           [] Read    [] Write
Manage Groups             [] Read    [] Write

ユーザーが各行の1つまたは両方のチェックボックスをチェックすると、チェックボックスがチェックされている行の一意のIDと、チェックされたチェックボックスの値を持つ配列を取得することが期待されます。

これが私のコードです:

<form action="test.php" method="post">

<table width="400" border="0">
<?php
@include "../inc/db.php"; 

$all_mod_qry = @mysql_query("select * from `adm_modules` order by module_name");
while($all_mod_row = @mysql_fetch_assoc($all_mod_qry))
{
    echo '<tr>
    <td width="45%">
<p>
<label><span>'.$all_mod_row['module_name'].'</span></label>
  <div class="clear"></div>
</p>
    </td>
    <td>
<p>
<label><input name="mod_id[][]" type="checkbox" value="'.$all_mod_row['id']['read'].'" /> <em>Read</em> </label>
  <div class="clear"></div>
</p>
    </td>
    <td>
<p>
<label><input name="mod_id[][]" type="checkbox" value="'.$all_mod_row['id']['write'].'" /> <em>Write</em> </label>
  <div class="clear"></div>
</p>
    </td>
  </tr>';   
}

?>
</table>


<p>
<input class="submit_btn" type="submit" name="new_subt" value="Create" />
</p>

</form>


<?php


if (isset($_POST['new_subt'])) {

foreach ($_POST['mod_id'] as $mod_id => $mod_right_arr)
{
    $module[$mod_id] = array();

    foreach ($mod_right_arr as $key => $value)
    {
        $module[$mod_id][$key] = $value;
    }
}


}


?>

これを機能させようとしていますが、うまくいきません。

これについて本当に助けが必要であり、これについて助けてもらえることに感謝します。

4

1 に答える 1

2

次のようなチェックボックス名を付けてみてください

<label><input name="mod_id[]" type="checkbox" value="'.$all_mod_row['id']['read'].'" /> <em>Read</em> </label>

一次元で...そしてそれらを次のように取得しようとします

$checks = $_POST['mod_id'];

可能であれば、読み取り用と書き込み用に 2 つの名前の配列を指定してみてください。選択したデータを選択して取得するのは非常に簡単です。

于 2013-06-10T09:07:17.847 に答える