3

私は完全な初心者ですが、どこでも検索して解決策を見つけることができません。

私が持っているのは、データベースから取得した一連のコースです(例:数学、芸術、科学)。これらは変更される可能性があるため、常に新しいコースを追加する必要があります。

たとえば、ユーザーが3つのコースのうち2つにチェックマークを付けたが、ユーザー名を追加できなかった場合、検証後、これら2つのチェックボックスで古いチェックボックスを保持する必要があるため、続行するにはユーザー名のみを入力する必要があります。

私が得るのは、チェックされたすべてのチェックボックスです:{

私は困惑している。

<?PHP
$check="unchecked";
?>

<?PHP
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
    foreach ($_POST['cid'] as $cid ) {
        $check="checked";
    }
}
?>

<?PHP 
$course_data = "SELECT * FROM course ORDER BY cname";
$get_course = mysql_query($course_data) or die (mysql_error());

while ($db_field = mysql_fetch_assoc($get_course)){
    $cname= $db_field['cname'] ;//course name
    $cid= $db_field['cid'] ;// course id

    print"<BR>". 
    "<FONT COLOR='blue' SIZE='4'><B>$cname</B></FONT>".
    "<input type='checkbox'  name='cid[]' value='$cid' $check>"; // here are the courses(checkboxes)
}
?>
4

2 に答える 2

1

$checkedチェックボックスごとに個別に変数を設定する必要があります。

$checkedBoxes = array();
foreach($cid as $id) {
    $checkedBoxes[$id] = "checked='false'";
}

foreach ($_POST['cid'] as $cid) {
    $checkedBoxes[$cid] = "checked='true'";
}

次に、チェックボックスを出力するループで、対応する $checked 値を出力します。

while ($db_field = mysql_fetch_assoc($get_course)){
    $cname= $db_field['cname'] ;//course name
    $cid= $db_field['cid'] ;// course id

    print"<BR>". 
    "<FONT COLOR='blue' SIZE='4'><B>$cname</B></FONT>".
    "<input type='checkbox'  name='cid[]' value='$cid' {$checkedBoxes[$cid]}>"; // here are the courses(checkboxes)
}
于 2012-08-01T16:27:33.580 に答える
1

これは、あなたの望むことですか?

<?PHP
if ($_SERVER['REQUEST_METHOD'] == 'POST'){

    $cid_array = $_POST['cid'];

/*foreach ($_POST['cid'] as $cid ) {
$check="checked";
}*/
}
?>


<?PHP 
$course_data = "SELECT * FROM course ORDER BY cname";
$get_course = mysql_query($course_data) or die (mysql_error());

while ($db_field = mysql_fetch_assoc($get_course)){
    $cname= $db_field['cname'] ;//course name
    $cid= $db_field['cid'] ;// course id
    if(is_array($cid_array))
{
    if(in_array($cid, $cid_array))
    {
        $check="checked='checked'";
    }
    else
    {
        $check="";
    }
}
else//it is not array because nothing was checked
{
    if($cid == $cid_array)
    {
        $check="checked='checked'";
    }
    else
    {
        $check="";
    }
}

print"<BR>". 
"<FONT COLOR='blue' SIZE='4'><B>$cname</B></FONT>".
"<input type='checkbox'  name='cid[]' value='$cid' $check>"; // here are the courses(checkboxes)
}
?>
于 2012-08-01T16:34:11.533 に答える