覆盖PHP设置的复选框值

覆盖PHP设置的复选框值,php,forms,post,checkbox,Php,Forms,Post,Checkbox,用于向数据库中添加新项和编辑现有项的表单与此表单相同。一个“模式”被传递到表单中,告诉它是否正在添加新的内容或加载现有项目进行编辑。所以 <input type="checkbox" name="fflreq" id="fflreq" value="<?=$row['FFLr']?>" <?php if ($row['FFLr']=="Yes") {echo 'checked';} ?>> 它不是这样工作的。如果您已选中该复选框,则该复选框(连同其值)将与表

用于向数据库中添加新项和编辑现有项的表单与此表单相同。一个“模式”被传递到表单中,告诉它是否正在添加新的内容或加载现有项目进行编辑。所以

<input type="checkbox" name="fflreq" id="fflreq" value="<?=$row['FFLr']?>" <?php if ($row['FFLr']=="Yes") {echo 'checked';} ?>>

它不是这样工作的。如果您已选中该复选框,则该复选框(连同其值)将与表单的post/get(即提交)一起发送。如果您没有检查它,那么它将不会被设置…

这不是它的工作方式。如果您已选中该复选框,则该复选框(连同其值)将与表单的post/get(即提交)一起发送。如果未选中该复选框,则不会对其进行设置…

如果该复选框处于活动状态,浏览器将发送输入标记中定义的键/值对。但是,如果该复选框未处于活动状态,则不会为此复选框发送任何内容

有两种方法可以解决这个问题:

clean选项是在服务器端意识到这一点,并假设每当没有值通过时复选框都不活动


一个更脏的变体是在复选框前面有一个
标记,使用相同的名称,但在复选框处于非活动状态时需要看到的值。这样,当复选框处于活动状态时,您仍然可以从复选框中获得所需的值,因为它将覆盖隐藏的值。但是,如果复选框处于非活动状态,您将从隐藏字段中获取值。

如果复选框处于活动状态,浏览器将发送输入标记中定义的键/值对。但是,如果该复选框未处于活动状态,则不会为此复选框发送任何内容

有两种方法可以解决这个问题:

clean选项是在服务器端意识到这一点,并假设每当没有值通过时复选框都不活动


一个更脏的变体是在复选框前面有一个
标记,使用相同的名称,但在复选框处于非活动状态时需要看到的值。这样,当复选框处于活动状态时,您仍然可以从复选框中获得所需的值,因为它将覆盖隐藏的值。但是,如果复选框处于非活动状态,您将从隐藏字段中获取值。

您需要这样做:

<input type="checkbox" name="fflreq" id="fflreq" value="Yes" <?php if ($row['FFLr']=="Yes") {echo 'checked';} ?>>

我希望这能有所帮助。

您需要这样做:

<input type="checkbox" name="fflreq" id="fflreq" value="Yes" <?php if ($row['FFLr']=="Yes") {echo 'checked';} ?>>

我希望这能有所帮助。

事实并非如此,检查/未检查状态是通过查看
$\u POST
参数中是否存在HTML
名称
属性值来读取的

您可以通过以下方式进行检查:

<?
    if (!empty($_POST['fflreq'])){ /*checked*/ }
    else{ /*unchecked*/ } 
?>   

实际上,检查/未检查状态是通过查看
$\u POST
参数中是否存在HTML
name
属性值来读取的

您可以通过以下方式进行检查:

<?
    if (!empty($_POST['fflreq'])){ /*checked*/ }
    else{ /*unchecked*/ } 
?>   

谢谢,这似乎不是它应该工作的合乎逻辑的方式,但我确实明白了,它解决了问题。谢天谢地,这似乎不是它应该工作的合乎逻辑的方式,但我确实明白了,它解决了问题。谢谢,汉克斯,回想起来,我以前用过那种“肮脏”的方法,但这次没有想到。谢谢,回想起来,我以前用过那种“肮脏”的方法,但这次没有想到。这也会起作用。