【问题标题】:how to get checkbox value from database in php for update data?如何从 php 中的数据库中获取复选框值以更新数据?
【发布时间】:2015-02-27 07:22:14
【问题描述】:

在数据库中的值存储为“A、B、C、D、E、F”等。 现在我必须以更新的形式获取这些数据。 如果它的值与数据库值匹配,我必须选中复选框。

我正在做这种代码(我知道这是错误的)

    <input type="checkbox" name="time[]" value="free" <?php if(!strpos($row['best'], 'free')=="false") { echo "checked='checked'";} ?> />Free
    <input type="checkbox" name="time[]" value="Open" <?php if(!strpos($row['best'], 'Open')=="false") { echo "checked='checked'"; }?>/>Open Source
    <input type="checkbox" name="time[]" value="portable" <?php if(!strpos($row['best'], 'portable')=="false") { echo "checked='checked'"; }  ?> />Portable
    <input type="checkbox" name="time[]" value="support" <?php if(!strpos($row['best'], 'support')=="false") {
                        echo "checked='checked'"; }?> />Support

【问题讨论】:

    标签: php web checkbox sql-update


    【解决方案1】:

    当 strpos 为 0(第一个字符)时,如果使用 double = (==) 则等于 false。您需要使用 ===false。此外它应该是false,而不是"false"

    【讨论】:

    • 我不明白为什么第一行与其他行不同。对于html文件,是正确的。
    • 第一行不起作用: />免费
    • 右行:/>开源
    • 你仍然使用 == 而不是 ===
    • 可能键是大写的“Free”——在这种情况下,要么更改为“Free”,要么将 strpos 更改为不区分大小写的 stripos
    【解决方案2】:

    你可以这样做:

    假设你有四个静态值:

    ?php
    $time = ['free', 'open' , 'portable', 'support']; // your checkboxes
    $fromDb = explode(',', $row['best']);
    foreach($time as $t):
    ?>
    <input type="checkbox" name="time[]" value="<?php echo $t;?>" <?php if(in_array($t, $fromDb) { echo "checked='checked'";} ?> /><?php echo ucfirst($t);?>
    <?php endforeach;?>
    

    【讨论】:

    • />
    • 我认为该错误是因为我获取的数据库值未转换为数组或可能来自 fromDb 的不是数组...但我不确定
    猜你喜欢
    • 2013-10-09
    • 2020-05-02
    • 1970-01-01
    • 1970-01-01
    • 2018-09-03
    • 2018-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多