Id Name -6ren">
gpt4 book ai didi

php - 复选框中未定义索引

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

<form method="POST" action="<?php $_SERVER['PHP_SELF']; ?>">
<table border="1" cellpadding="4">
<tr>
<th>Id</th>
<th>Name</th>

</tr>
<?php
include('connect.php');
$getQuery = "SELECT id,username,admin FROM tutorial_users ORDER BY id ASC";
$getResult = mysql_query($getQuery) or die("Query not executed");
while (list($id, $userName, $admin) = mysql_fetch_row($getResult)) {
?>
<?php
$checked = ($admin == 1) ? 'checked="checked"' : '';
?>
<tr align="center">
<td><?php echo $id; ?></td>
<td><?php echo $userName; ?></td>
<td><?php echo "<input type='checkbox' name='admin[]' value='$id' $checked>"; ?></td>
<?php } ?>
<tr>
</table>
<p>
<input type="submit" name="submit" value="Update Role">
</p>
</form>
<?php
$updated = FALSE;
if (isset($_POST['submit'])) {
$admin = $_POST['admin'];
$admin = join(",", $admin);
$admin = "(" . $admin . ")";
$defaultQuery = "UPDATE tutorial_users SET admin=0";
$defaultResult = mysql_query($defaultQuery);
$upQuery = "UPDATE tutorial_users SET admin=1 WHERE id IN $admin";
echo $upQuery;
$upResult = mysql_query($upQuery);
$updated = TRUE;
}
?>

在上面的代码中我有两个问题:

  1. 假设我希望取消选中每个复选框,然后当我按下提交时,它会给我 undefined index $admin,我该如何解决这个问题?

    当我检查至少一个框并将值传递给 POST 数组时,它工作正常。

  2. 其次,我想知道这是实现结果的好方法还是我们可以有其他方法?就我个人而言,我感觉很糟糕,因为如果我有 1000 条记录,那么将花费大量时间来一一更新 2 个查询。

结果:我想要的非常简单,选中的框应具有值 = 1,而未选中的框应具有 0。

最佳答案

提交表单时,复选框不包含在 POST 数据中。在尝试使用它执行任何其他操作之前,您需要调用 isset($_POST['admin'])

另外,顺便说一句,您需要查看未弃用的 mysqli 函数或 PDO。 mysql_* 函数已被弃用并将被删除。

关于php - 复选框中未定义索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18265020/

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