Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我想使用PHP脚本选中并取消选中表单的复选框_Php - Fatal编程技术网

我想使用PHP脚本选中并取消选中表单的复选框

我想使用PHP脚本选中并取消选中表单的复选框,php,Php,大家好,我想使用PHP脚本选中并取消选中表单的复选框。 在数据库中,我使用数据类型TinyInt来存储0或1。 我正在使用以下代码 <tr> <td><div id="formEditProfileLblAEmail">Allow Email</div> </td><td><input type="checkbox" checked="<?php $sql = "Select firstnam

大家好,我想使用PHP脚本选中并取消选中表单的复选框。 在数据库中,我使用数据类型TinyInt来存储0或1。 我正在使用以下代码

<tr>
    <td><div id="formEditProfileLblAEmail">Allow Email</div> 
    </td><td><input type="checkbox" checked="<?php

$sql = "Select firstname,middlename,lastname,nickname,require_email,allow_scores from user_info where username = '".$_SESSION['username']."'";
  $result=mysql_query($sql);
  $count=mysql_num_rows($result);
  $row = mysql_fetch_array($result); 


          if($count>0)
          {

             if($row['require_email']=='1')
              {
                 echo 'checked';
              }
              else
              {
                 echo 'unchecked';
              }
          }
          else
              echo 'unchecked';

          ?>" name="formEditProfileChkAEmail"  id="formEditProfileChkAEmail" /> </td></tr>

但无论数据库中是否有0或1,我的复选框总是会被选中。

不要处理if的else部分,只需在if中添加

移除位于if外部的选中的=

<input type="checkbox" 
<?php if($row['require_email']=='1')  {
                 echo 'checked="checked"';
 }

与要取消选中的复选框无关。

不处理if的其他部分,只需在if中添加

移除位于if外部的选中的=

<input type="checkbox" 
<?php if($row['require_email']=='1')  {
                 echo 'checked="checked"';
 }

与要取消选中的复选框无关。

是否打印文本?Try checked=checked。

文本是否正在打印?Try checked=checked。

根据,checked属性是布尔值。也就是说,如果您没有将其设置为表示false的值,则用户代理可能会确定它为true,即选中。从历史上看,仅此属性的存在就表明应选中该框,因此这可能是默认值

您可以通过查看源代码来测试这一点-我怀疑您将使用checked=unchecked来呈现页面,这仍然会将框呈现为选中状态

您可以通过在PHP源代码中将unchecked更改为false来修复此问题,以便获得所需的正确布尔行为

编辑:规范进一步定义了表示true的内容——因此,要生成正确的HTML并将该属性设置为false,唯一的方法是完全忽略该属性。描述如何实现此目的,并从我处获取+1。

根据,选中的属性为布尔值。也就是说,如果您没有将其设置为表示false的值,则用户代理可能会确定它为true,即选中。从历史上看,仅此属性的存在就表明应选中该框,因此这可能是默认值

您可以通过查看源代码来测试这一点-我怀疑您将使用checked=unchecked来呈现页面,这仍然会将框呈现为选中状态

您可以通过在PHP源代码中将unchecked更改为false来修复此问题,以便获得所需的正确布尔行为


编辑:规范进一步定义了表示true的内容——因此,要生成正确的HTML并将该属性设置为false,唯一的方法是完全忽略该属性。描述如何实现此目的,并从我处获取+1。

没有值,例如未选中,因此需要回显:

checked="checked"

如果值大于0,如果值为0,则什么也没有。

没有值,例如未选中的值,因此您需要回显:

checked="checked"

如果值大于0,如果值为0,则什么都没有。

这绝对是SQL注入的开放条件。熟悉PHP预处理语句功能的人可以建议如何避免这种情况吗?问题不在于SQL注入,我可以防止这种情况,基本上我想选中/取消选中复选框。这不是PHP问题,而是HTML问题。学习HTML。这与JavaScript无关,因为您正在使用服务器端PHP代码设置复选框状态-删除标记。我真的不想在这种情况下使用JavaScript。这绝对是对SQL注入开放的。熟悉PHP预处理语句功能的人可以建议如何避免这种情况吗?问题不在于SQL注入,我可以防止这种情况,基本上我想选中/取消选中复选框。这不是PHP问题,而是HTML问题。学习HTML。这与JavaScript无关,因为您正在使用服务器端PHP代码设置复选框状态-删除标记。我真的不想在此场景中使用JavaScript。完成人谢谢。将在剩余5分钟后标记它已回答。完成人谢谢。将在剩余5分钟后标记它已回答。