POST请求随机名称

时间:2018-11-19 14:43:06

标签: php sql

所以我在这里遇到了一个问题。

我需要能够选择此代码创建的两个单选按钮之一。

                        $data = "SELECT * FROM docenten";
                $var = mysqli_query($db, $data);
                while ($row = mysqli_fetch_object($var)) {
                    echo "<tr>";
                    echo "<td>" . $row->ID . "</td>";
                    echo "<td>" . $row->Naam . "</td>";
                    echo "<td>" . $row->Afkorting . "</td>";
                    echo "<td>" . $row->aanwezigheid . "</td>";
                    echo "<td><input type='radio' name='select' value='Afwezig,".$row->ID."'>Afwezig <input type='radio' name='select' value='Aanwezig,".$row->ID."'>Aanwezig";
                    echo "</tr>";
                }   

它的作用是从我的数据库中获取每个人,并为每个人创建2个单选按钮。但是我现在面临的问题是我只能更新一个人。就像说有5个人出现在表格中一样,我只能选择一个单选按钮,因为它们都具有相同的名称。 现在,我尝试使所有单选按钮的名称与该人的ID相同,但这不起作用

我正在尝试做这样的事情:

                        $data = "SELECT * FROM docenten";
                $var = mysqli_query($db, $data);
                while ($row = mysqli_fetch_object($var)) {
                    echo "<tr>";
                    echo "<td>" . $row->ID . "</td>";
                    echo "<td>" . $row->Naam . "</td>";
                    echo "<td>" . $row->Afkorting . "</td>";
                    echo "<td>" . $row->aanwezigheid . "</td>";
                    echo "<td><input type='radio' name='".$ID."' value='Afwezig,".$row->ID."'>Afwezig <input type='radio' name='".$ID."' value='Aanwezig,".$row->ID."'>Aanwezig";
                    echo "</tr>";
                } 

然后我可以打电话给我的server.php

if (isset($_POST['ID'])) {
$value = $_POST['ID'];
$arr = explode(",", $value);
$query = "UPDATE docenten SET aanwezigheid = '" . $arr['0'] . "' WHERE ID = '" . $arr[1] . "'";
mysqli_query($db, $query);
    } else {
    array_push($errors, "Oeps er is iets fout gegaan");
    }

对不起,如果我没有任何道理,我真的很想问这类问题

1 个答案:

答案 0 :(得分:1)

对于我所看到的,您正在循环显示列表。您可以使用ID作为名称,但是在获取POST时必须执行相同的循环。

$data = "SELECT * FROM docenten";
$var = mysqli_query($db, $data);
while ($row = mysqli_fetch_object($var)) {
    echo "<tr>";
    echo "<td>" . $row->ID . "</td>";
    echo "<td>" . $row->Naam . "</td>";
    echo "<td>" . $row->Afkorting . "</td>";
    echo "<td>" . $row->aanwezigheid . "</td>";
    echo "<td><input type='radio' name='".$row->ID."' value='Afwezig,".$row->ID."'>Afwezig <input type='radio' name='".$ID."' value='Aanwezig,".$row->ID."'>Aanwezig";
    echo "</tr>";
} 

现在,您应该执行相同的循环,但要使用:

while ($row = mysqli_fetch_object($var)) {
    if(isset($_POST[$row->ID])) {
        // Do your query
    }
}

那将检查是否设置了每个条目的值。