2

まず、送信されたこれらのチェックボックスの値ではなく、名前を保存したいと思います。

これは私のコードです:

<?php
    $con=mysqli_connect("localhost","root","","notifier");
if (mysqli_connect_errno())
{
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$result = mysqli_query($con,"SELECT * FROM student");

echo "Enter the attendance. Please untick for 'ABSENT' students and submit";
echo "<br>";
echo "<form action=\"d.php\" method=\"post\">";
while($row = mysqli_fetch_array($result))
{
    echo "<br>" .$row['classrollno'] . "&nbsp&nbsp;&nbsp<input type=\"checkbox\" name=\"" . $row['studentid'] . "\" value=\"P\" checked>";
}
    echo "<input type=\"submit\" name=\"submit\" value=\"submit\">";
echo "</form>";
?>

このコードは、学生テーブルから学生ロール番号の列を取得して出力し、デフォルトでチェックされているチェックボックスをその前に出力します。チェックボックスの名前は学生 ID (varchar、別の列) になります。

すべてのチェックボックス、つまり次のページに送信されるチェックボックスは同じデフォルト値「P」を持つため、それらの値は気にしません。

これらのチェックボックスの名前を配列に保存し、後でそれを使用して、これらすべての学生 ID のテーブルで更新を実行するにはどうすればよいですか?

4

4 に答える 4

1

名前を配列に追加し続けます。それは簡単です。

$allStudentIds = array();外側のwhileループを宣言します。次に、その配列に格納するには、

$allStudentIds[] = $row['studentid'];

これらの値を後で使用したかったので、セッション変数内に直接保存できます。

$_SESSION['allStudentIds'][] = $row['studentid'];

上記の場合、$_SESSION['allStudentIds']選択されたすべての学生 ID の配列になります。

注:session_start()タグを開いた後、スクリプトの最初の行として使用してセッションを開始する必要があります<?php

于 2013-10-06T12:49:09.067 に答える
0

簡単に言うと、fetching while ループで配列を定義し、各チェックボックスの値をその要素の 1 つに設定してから、それをセッション変数として割り当てます。

while($row = mysqli_fetch_array($result))
{
    echo "<br>" .$row['classrollno'] . "&nbsp&nbsp;&nbsp<input type=\"checkbox\" name=\"" . $row['studentid'] . "\" value=\"P\" checked>";
$names[] = $row['studentid'];
}

それで、

$_SESSION['names'] = $names;
于 2013-10-06T12:50:01.427 に答える