【问题标题】:check select box when value = one of other value当值 = 其他值之一时选中选择框
【发布时间】:2011-06-18 21:19:57
【问题描述】:

我有这样的价值观:

$brands = "1,2,3,4,5"

我有这个:

<input type="checkbox" name="brand[]" value="<?php print"$brand_id"; ?>" /><?php print"$brand_id"; ?>

我想写源代码,所以当$brand_id$brands 之一时,复选框选中意味着打印“选中”;

$brands 是可变的,由 php 编写

【问题讨论】:

    标签: php checkbox checked


    【解决方案1】:

    这将为您拥有的每个品牌输出一个&lt;input&gt;,并将checked="checked" 附加到任何选定的品牌。

    $selected = array(2, 5);
    $brands = array(1, 2, 3, 4, 5);
    
    foreach ($brands as $brand) {
        echo '<input type="checkbox" name="brand[]" value="'.$brand.'"'.(in_array($brand, $selected) ? ' checked="checked"' : '').'/>'."\n";
    }
    

    如果 $brands 和 $selected 是动态的(例如来自 MySQL 数据库),您可以执行以下操作:

    $brands = mysql_fetch_row('SELECT id FROM brand');
    $selected = mysql_fetch_row("SELECT brand_id FROM user_brands WHERE user_id = '42'");
    

    但在不了解您的申请的情况下,我无法给出完整的答案。

    【讨论】:

    • 当我这样做时如何将 array(2, 5) 更改为 array($brands),只需选中第一个文本框
    • @ebad : array(1, 2, 3, 4, 5) 是您拥有的品牌数量,array(2, 5) 是您选择的品牌
    • 我明白,但是品牌的数量是动态的,必须从数据库中获取,并且数组(2,5)也是动态的,并且可以从数据库中的其他表中获取,并且可能会更改 1,2,3,4,5太 1,4,6,3 或 2,5 改为 1,4,6,3
    【解决方案2】:
    $brands =array("1,2,3,4,5");
    <?php foreach($brand as $value){ ?>
    <input type="checkbox" name="brand[]" value="<?php echo "$brand_id"; ?>"<?php ($brand_id==$value)?"checked":'';} />
    <?php } ?>
    

    【讨论】:

      【解决方案3】:
      <input type="checkbox" name="brand[]" value="<?php echo $brand_id.'" '; echo (in_array($brand_id, $brands))?"checked/>":"/>"; ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-12
        相关资源
        最近更新 更多