Php 隐藏文本框的后置值

Php 隐藏文本框的后置值,php,jquery,post,checkbox,Php,Jquery,Post,Checkbox,我有以下代码: <?php $result = mysqli_query($con,"SELECT * FROM table"); while($row = mysqli_fetch_array($result)){ echo "<input type=\"checkbox\" id=\"$row[use_id]\" name=\"things[]\" value='$row[col_id]' >$row[col]<br>"; echo "<input

我有以下代码:

<?php
$result = mysqli_query($con,"SELECT * FROM table");

while($row = mysqli_fetch_array($result)){
echo "<input type=\"checkbox\" id=\"$row[use_id]\"  name=\"things[]\"  value='$row[col_id]' >$row[col]<br>";
echo "<input placeholder=\"description\" type=\"text\" name=\"ans1\" class='$row[col_id]' id=\"answer1\" style='display:none;'>";
echo "<align='left'><input placeholder=\"source\" type=\"text\" name=\"ans2\" class='$row[use_id]' id=\"answer2\"   style='display:none;'>";

}
?>
您必须将
ans1
ans2
作为数组发送到服务器。不是字符串。 将
while
循环更改为:

while($row = mysqli_fetch_array($result)) {
    echo "<input type='checkbox' id='$row[use_id]'  name='things[$row[col_id]]'  value='$row[col_id]' >$row[col]<br>";
    echo "<input placeholder='description' type='text' name='ans1[$row[col_id]]' class='$row[col_id]' id='answer1' style='display:none;'>";
    echo "<align='left'><input placeholder='source' type='text' name='ans2[$row[col_id]]' class='$row[use_id]' id='answer2'   style='display:none;'>";
}
在上面的数组中,所有文本框都有值,正如我在那里写的
用户禁止的数据
。 这并不重要,因为有效的数据(用户已选中复选框) 是
things
数组中的那些,因此在服务器中,必须按该数组循环

$checkbox = $_POST['things'];

if ($checkbox) {
    foreach ($checkbox as $id => $value) {
        $ans1 = $_POST['ans1'][$id];
        $ans2 = $_POST['ans2'][$id];

        // to other stuff
    }
}

不要使用display:none(这些将不会被发送),而是在这些字段上使用visibility:hidden。这是否在表单中?甚至导致回发的代码/html在哪里?@JayBlanchard-这不是真的:你很容易受到你应该自己反对的代码/html的攻击。谢谢@Quentin-我使用的是旧信息。
while($row = mysqli_fetch_array($result)) {
    echo "<input type='checkbox' id='$row[use_id]'  name='things[$row[col_id]]'  value='$row[col_id]' >$row[col]<br>";
    echo "<input placeholder='description' type='text' name='ans1[$row[col_id]]' class='$row[col_id]' id='answer1' style='display:none;'>";
    echo "<align='left'><input placeholder='source' type='text' name='ans2[$row[col_id]]' class='$row[use_id]' id='answer2'   style='display:none;'>";
}
Array
(
    [things] => Array
        (
            [1] => 1
            [4] => 4
        )

    [ans1] => Array
        (
            [1] => Description 1
            [2] => forbidden data by user
            [3] => forbidden data by user
            [4] => Description 4
            [5] => forbidden data by user
        )

    [ans2] => Array
        (
            [1] => Source 1
            [2] => forbidden data by user
            [3] => forbidden data by user
            [4] => Source 4
            [5] => forbidden data by user
        )

)
$checkbox = $_POST['things'];

if ($checkbox) {
    foreach ($checkbox as $id => $value) {
        $ans1 = $_POST['ans1'][$id];
        $ans2 = $_POST['ans2'][$id];

        // to other stuff
    }
}