"> 我想要知道有多少用户名记录进入数组。那么多时间就会生成两个复选框。因此,当我选中所有复-6ren">
gpt4 book ai didi

php - 根据复选框更新表格,

转载 作者:行者123 更新时间:2023-11-29 23:33:35 25 4
gpt4 key购买 nike

大家好,希望大家都好。我有个问题。

我有一个遵循表单代码的表单。

<form name="form3" method="post" action="">

<?php while ($row_news1 = mysql_fetch_assoc($rs_news1)) { ?>

<input type="checkbox" name="check1[]" value="1" <?php if($row_news1['house']=='1') echo "checked=\"checked\""; ?>>


<input type="checkbox" name="check2[]" value="1" <?php if($row_news1['add_item']=='1') echo "checked=\"checked\""; ?>>



<input type="text" name="user_name[]" id="textfield" readonly style="width:50%;color:white;background-color:transparent" value="<?php echo $row_news1['FirstName'].'&nbsp;'.$row_news1['LastName']; ?>"><br>


<input type="hidden" name="user_id[]" value="<?php echo $row_news1['UserID']; ?>">


<?php } ?>


<input type="submit" value="Submit" name="update" class="but">

<input type="submit" value="Reset" name="reset" class="but">

</form>

我想要知道有多少用户名记录进入数组。那么多时间就会生成两个复选框。因此,当我选中所有复选框时,表更新成功。但是当我想随机选中一些复选框时,它们对应的记录将更新为值 1,而所有其他未选中的复选框对应的记录将更新为值 0。

这是我的表单提交代码。

if(isset($_POST['update'])&& $_POST['user_name']!=''){  // checking if Update button clicked

$user_id=$_POST['user_id']; // Getting all user_id

$user_name= $_POST['user_name']; //Getting user name text box

$check1=$_POST['check1'];// Getting all check boxes but in this case its only taking checked boxes.

$check2=$_POST['check2'];


for($i = 0; $i < count($user_name); $i++){ // iterating the code until we have user name.

if($check1[$i]=='1'){ // checked if first checkbox value is 1 so assign 1 to Variable a. other wise 0;

$a=1;

}

else {

$a=0;


}

if($check2[$i]=='1'){ // same as above i want

$b=1;

}

else {

$b=0;

}

// this is the query that i want to update the rocord

$query_u1 = "UPDATE Users

SET

house = '".$a."',

add_item = '".$b."'

WHERE UserID=".$user_id[$i];

mysql_query($query_u1) or die(mysql_error());


}

echo '<script> window.location = "adminmain.php";</script>';

}

上面的代码显示了我的Php和mysql查询代码。

现在我希望所有复选框都被选中或不选中。只是其他的事情。意味着我有 10 个用户记录。每条记录都有其 UserId 和名称。对于每条记录,我都有两个复选框,如代码中所示。

我想要当我随机选中 5 个复选框时。所以这五个对应的记录将被更新为1值。其他五个复选框对应的记录将更新为 0 值。

我想你们现在就会明白了。

最佳答案

好的,这实际上很简单。从基本形式开始:

<form method="post" action="">
<input type="checkbox" name="my_checkboxes[]" checked>
<input type="checkbox" name="my_checkboxes[]">
<input type="checkbox" name="my_checkboxes[]">
</form>

然后使用 php 构建后端

if(isset($_POST['my_checkboxes'])){
foreach($_POST['my_checkboxes'] as $key => $val){
// Update database with $val Update DB set col = '$val' (use prepared statements for security)
}
}

这段代码可以进行很大的改进,但这会给你一个总体思路。一个重要注意事项,php 只会传递选中的复选框。所以,请记住这一点。

解决此潜在问题的一种方法是为您拥有的每个复选框添加隐藏输入,因此您的论坛可能会更改为如下所示(注意:从 name 属性中删除括号):

<form method="post" action="">
<input type="checkbox" name="my_checkbox1" value="sent" checked>
<input type="hidden" name="my_checkbox1" value="">
<input type="checkbox" name="my_checkboxe2">
<input type="hidden" name="my_checkbox2" value="">
</form>

现在,使用 PHP,您只需确定该值是已发送还是。如果值已发送,则已检查,否则未检查。

关于php - 根据复选框更新表格,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26465862/

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