1 回答
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.'>';
这应该有效,因为如果选中该复选框,它将覆盖隐藏输入中的值。如果未选中,则将提交隐藏的输入值。
- 1 回答
- 0 关注
- 135 浏览
添加回答
举报