【问题标题】:reflecting a mySQL boolean in a checkbox在复选框中反映 mySQL 布尔值
【发布时间】:2012-07-06 18:30:59
【问题描述】:

我在 mySQL 中有一个字段 TINYINT,它是 0 或 1

我还有一个表格:

      <input type="checkbox" name="featured" value="<?php echo $row_rs_dealItem['featured']; ?>"/><br /><br />

当我选择复选框时,我可以在 mySQL 中将值设置为“1”,但不能反过来,因为当我查看更新记录页面时,复选框始终为空白(我了解复选框状态与值,应该这样设置)。

因此,如果值为“1”,我需要检查复选框,如果我取消选中,则需要将 mySQL 中的值改回“0”

我知道有很多关于这方面的帖子,但我似乎无法做出正面或反面,而且我尝试的任何方法都不起作用。

我们可以把它保存在 PHP 中吗?

谢谢

【问题讨论】:

    标签: php mysql checkbox


    【解决方案1】:

    在您的 html 复选框中使用它:

    <?php if ($row_rs_dealItem['featured'] == 1) echo "checked='checked'"; ?>
    

    并将其写入保存数据的文件中:

    if(isset($_POST['featured'])) $featured = 1; else $featured = 0;
    

    【讨论】:

    • 根据我的代码编辑器,你的第二行有语法错误?
    • aha missing ) 在方括号后
    • 仍然没有显示勾号 :( - 肯定将第一行放在值位中?
    • />
    【解决方案2】:
    $featured = (isset($_POST['featured'])) ? 1 : 0;
    

    【讨论】:

      【解决方案3】:

      只需使用 PHP 的 intval 函数, 提交表单后,在保存数据的文件中:

      $_POST['featured'] = intval($_POST['featured']);
      

      如果未选中复选框,则 $_POST['featured'] 为 NULL,并且 intval(NULL)=0

      【讨论】:

        【解决方案4】:

        试试

        <?PHP
        if(isset($_POST['featured']))
        {
            $_POST['featured'] =1;
        }
        else
        {
           $_POST['featured'] =0; 
        }
        

        【讨论】:

          猜你喜欢
          • 2016-01-21
          • 1970-01-01
          • 2012-02-23
          • 2012-06-04
          • 2015-12-12
          • 2020-03-08
          • 2011-10-14
          • 2013-12-09
          • 2015-11-19
          相关资源
          最近更新 更多