【问题标题】:jquery check checkboxes based on php array基于php数组的jquery检查复选框
【发布时间】:2010-06-27 23:46:51
【问题描述】:

我有一个 php 数组,其中包含先前已选择的复选框的 mysql 值。我正在尝试进行各种编辑页面,该页面将显示已选中的复选框,但似乎存在问题。我尝试了不同的方法,但似乎无法正常工作。

这是我以前选择的复选框的 php 数组:

Array
(
    [0] => 1
    [1] => 3
)

这是我的复选框:

<input type="checkbox" name="company[]" id="company[]" value="1">
<input type="checkbox" name="company[]" id="company[]" value="4">
<input type="checkbox" name="company[]" id="company[]" value="2">
<input type="checkbox" name="company[]" id="company[]" value="3">

我似乎无法弄清楚如何让复选框(来自 php 数组 - 值 1 和 3)已经被选中..

【问题讨论】:

    标签: php jquery arrays checkbox


    【解决方案1】:

    这是在创建页面时执行此操作的服务器端解决方案。

    <?php
    function check_checked($index,$check_array){
      if (in_array($index,$check_array)){ echo 'checked="checked"';}
      }
    $checked=array(1,3);
    ?>
    <input type="checkbox" name="company[]" id="company[]" value="1" <?php check_checked(1,$checked);?>>
    <input type="checkbox" name="company[]" id="company[]" value="4" <?php check_checked(4,$checked);?>>
    <input type="checkbox" name="company[]" id="company[]" value="2" <?php check_checked(2,$checked);?>>
    <input type="checkbox" name="company[]" id="company[]" value="3" <?php check_checked(3,$checked);?>>
    

    如果你打算用 JavaScript 来做,我建议用 json_encode 将数组打印到一个 JS var 中,然后从那里开始。不过,服务器端更有意义,因为您已经有了要开始的数据。

    【讨论】:

    • 注意:如果您不希望 firefox 在页面刷新/重新加载时缓存选中的值,请添加 autocomplete="false"。
    • 当然,自动完成属性是非标准的,不会验证,但如果你不包含它,FF 真的会惹你生气。 @SoulieBaby 我想提一下,这不是最干净或最好的解决方案,细节方面,但建议作为构建的基础。它可以通过多种方式进行重构。
    【解决方案2】:
    <input type="checkbox" name="company[]" id="company[]" value="1" checked>
    

    如果你特别想让 jQuery 来做: http://www.electrictoolbox.com/check-uncheck-checkbox-jquery/

    【讨论】:

      【解决方案3】:

      最简单的方法是在服务器端进行:

      foreach ($array as $value) {
        $che = $value? "checked":"";
        print '<input type="checkbox" name="company[]" id="company[]" value="1" '.$che.'>';
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-09-15
        • 2021-01-28
        • 1970-01-01
        • 2018-08-08
        • 1970-01-01
        • 1970-01-01
        • 2015-07-05
        • 2017-05-09
        相关资源
        最近更新 更多