为了账号安全,请及时绑定邮箱和手机立即绑定

无法从 POST 获取值

无法从 POST 获取值

PHP
哆啦的时光机 2023-07-08 16:32:18
这是我创建的更新页面的一部分,如果勾选,我可以将某些图像设为私有。这是我的表格:/* MYSQL rows - Photo ID & Privacy */$photo_id = $row['id'];$photo_private = $row['private'];    /* Privacy setting for photo(s) */if ($photo_private == "1") {    echo '<input type="checkbox" name="private_photo['.$photo_id.']" value="1" checked>';       } else {     echo '<input type="checkbox" name="private_photo['.$photo_id.']" value="0">'; }下面是我的表单提交到的页面。我可以很好地获取照片 ID,但我不知道如何将 value="x" 保存到 $value 中foreach ($_POST['private_photo'] as $plz_pvt) {        $value = $_POST['private_photo'];                $sql = "UPDATE photos SET private='$value' WHERE id='$plz_pvt'";        $result = mysqli_query($con, $sql);    }
查看完整描述

1 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

首先,用 去掉复选框value="0"。这并不像您期望的那样工作。如果未选中复选框,则根本不会将其发送到服务器。这意味着如果它被选中,它将发送值0,因此它永远不会被正确设置。


接下来,添加一个具有相同名称和 的隐藏输入value="0"。如果此输入放置在复选框之前,则在未选中该复选框时会将其发送到服务器。如果选中该复选框,它将覆盖此隐藏输入。


//ternary - variable holds 'checked' if `$photo_private == 1`, or an empty string if not.

$is_checked = $photo_private == "1" ? 'checked' : '';


//hidden input - Submitted if checkbox is not checked.

echo '<input type="hidden" name="private_photo['.$photo_id.']" value="0">';


//checkbox - overwrites previous hidden input if checked. 

//Utilizes `$is_checked` to check the checkbox by default when appropriate

echo '<input type="checkbox" name="private_photo['.$photo_id.']" value="1" '.$is_checked.'>';

这应该有效,因为如果选中该复选框,它将覆盖隐藏输入中的值。如果未选中,则将提交隐藏的输入值。


查看完整回答
反对 回复 2023-07-08
  • 1 回答
  • 0 关注
  • 135 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信