使用此脚本: $(document).ready(function(){ $("input[type=chec-6ren">
gpt4 book ai didi

php - 隐藏文本框的发布值

转载 作者:行者123 更新时间:2023-12-01 05:55:01 25 4
gpt4 key购买 nike

我有这个代码:

<?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;'>";

}
?>

使用此脚本:

<script>
$(document).ready(function(){


$("input[type=checkbox]").change(function(){
var divId = $(this).attr("id");

if ($(this).is(":checked")){
$("." + divId).show();
}
else{
$("." + divId).hide();
}
});
});
</script>

我想使用代码从 2 个文本框中获取数据:

$checkBox = $_POST['things'];


for($i=0; $i<sizeof($checkBox); $i++){


$qs = "INSERT INTO sccm_reherb.table2 values('$_POST[id]','".$checkBox[$i]."','$_POST[ans1]','$_POST[ans2]')";
echo $qs;
mysqli_query($con,$qs) or die(mysqli_error($con));
}

但是'$_POST[ans1]'和'$_POST[ans2]'总是空的..有人可以帮助我吗?提前致谢!

最佳答案

您必须将 ans1ans2 作为数组发送到服务器。不是字符串。

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;'>";
}
  • 注 1:为了更好地阅读,我在 HTML 属性中使用单引号 (')。
  • 注2:注意name='ans2[$row[col_id]]'(现在是一个数组)
  • 注3:我通过$row[col_id]手动设置数组的索引

现在,如果您将此表单发送到服务器,您将得到这样的结果:

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
)

)

在上面的数组中,所有文本框都有值,正如我在用户禁止的数据中所写的那样。这并不重要,因为有效数据(用户已选中复选框)是 things 数组中的内容,因此在服务器中,您必须循环该数组。

$checkbox = $_POST['things'];

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

// to other stuff
}
}

关于php - 隐藏文本框的发布值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16691738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com