【问题标题】:Prepopulate a multiple select box from php using chosen Jquery使用选定的 Jquery 从 php 预填充多个选择框
【发布时间】:2014-02-26 16:31:39
【问题描述】:

我正在为我的下拉菜单使用这个脚本 http://harvesthq.github.io/chosen/

这是我的选择选项,在从空白字段开始时效果很好。

<form>
    <select class="chosen-select" multiple="multiple" id="fm-site[]" name="fm-site[]" style="width:250px" value="<?php echo $user_site;?>">
                    <option value="Pokerstars" <?php if(in_array("Pokerstars",$site_array)){echo 'selected';}?>>Pokerstars</option>
                    <option value="Full Tilt Poker" <?php if(in_array("Full Tilt Poker",$site_array)){echo 'selected';}?>>Full Tilt Poker</option>
                    <option value="Party Poker" <?php if(in_array("Party Poker",$site_array)){echo 'selected';}?>>Party Poker</option>
                    <option value="Ipoker" <?php if(in_array("Ipoker",$site_array)){echo 'selected';}?>>Ipoker Network</option>
                    <option value="Merge" <?php if(in_array("Merge",$site_array)){echo 'selected';}?>>Merge</option>
                    <option value="Winners Poker Network" <?php if(in_array("Winners Poker Network",$site_array)){echo 'selected';}?>>Winners Poker Network</option>
                    <option value="Microgaming" <?php if(in_array("Microgaming",$site_array)){echo 'selected';}?>>Microgaming</option>
                    <option value="Ongame" <?php if(in_array("Ongame",$site_array)){echo 'selected';}?>>Ongame</option>
                    <option value="Pacific" <?php if(in_array("Pacific",$site_array)){echo 'selected';}?>>Pacific</option>
                    <option value="Boss" <?php if(in_array("Boss",$site_array)){echo 'selected';}?>>Boss Poker</option>
                    <option value="PKR" <?php if(in_array("PKR",$site_array)){echo 'selected';}?>>PKR Network</option>
                    <option value="Winning Poker" <?php if(in_array("Winning Poker",$site_array)){echo 'selected';}?>>Winning Poker Network</option>
                    <option value="Revolution/Cake" <?php if(in_array("Revolution/Cake",$site_array)){echo 'selected';}?>>Revolution/Cake</option>
                    <option value="Winimax" <?php if(in_array("Winimax",$site_array)){echo 'selected';}?>>Winimax</option>
                </select>
</form>

为了允许用户对其进行编辑,我从数据库中预先填充了当前信息,这在所有正常输入字段上都可以正常工作,但对于多选则无法正常工作。

我有一个数组中的所有值,如下所示:

$site_array = ("Pokerstars","Full Tilt Poker", "Party Poker", "Ipoker");

但是当表单被打印出来时,它只会在第一个表单上进行选择,但在我的调试器中,我可以清楚地看到数组有 Full Tilt Poker 等,所以我不确定它为什么不起作用。我也尝试过 selected="selected" 但我感觉所选脚本正在覆盖它,因为查看 html 所选 Jquery 添加所选脚本的方式是这样的:

<div id="fm_site___chosen" title="" style="width: 250px;" class="chosen-container chosen-container-multi">
    <ul class="chosen-choices">
        <li class="search-choice">
            <span>Pokerstars</span>
            <a data-option-array-index="0" class="search-choice-close"></a>
        </li>
        <li class="search-choice">
             <span>Full Tilt Poker</span>
             <a data-option-array-index="1" class="search-choice-close"></a>
       </li>
       <li class="search-field">
           <input value="Select Some Options" class="" autocomplete="off" style="width: 25px;" type="text">
       </li>
   </ul>

   <div class="chosen-drop">
   <ul class="chosen-results">
       <li data-option-array-index="0" style="" class="result-selected">
           Pokerstars
       </li>
       <li data-option-array-index="1" style="" class="">
           Full Tilt Poker
       </li>
       <li data-option-array-index="2" style="" class="active-result">
           Party Poker
       </li>
       <li data-option-array-index="3" style="" class="active-result">
           Ipoker Network
       </li>
       <li data-option-array-index="4" style="" class="active-result">
           Merge
       </li>
       <li data-option-array-index="5" style="" class="active-result">
           Winners Poker Network
       </li>
       <li data-option-array-index="6" style="" class="active-result">
           Microgaming
       </li>
   </ul>
   </div>
</div>

我注意到,当以这种格式添加一个值时,它不会更新选项值内的选定值,如果您手动添加它,它有时会覆盖它。所以我想知道有没有办法通过选择的 jquery 来传递它应该预先选择哪些应该预先选择的或者可能有另一个类似的 jquery 有人可以推荐这样做,我有红色的文档,但我没有看到任何特定于这个问题的东西,但肯定有可能吗?

【问题讨论】:

    标签: php select jquery-chosen


    【解决方案1】:

    事实证明这是正确的,问题是每个值之前都有一个不可见的空格。我刚刚添加了这行代码并对其进行了更正,但它可能太孤立了,这对人们没有帮助,所以请随意关闭

    我将此添加到将字符串转换为数组的函数中

    $string_result=array_map('trim',$string_result);
    

    【讨论】:

      猜你喜欢
      • 2013-04-10
      • 2014-05-24
      • 2014-05-24
      • 2012-11-27
      • 2014-03-28
      • 1970-01-01
      • 2011-11-07
      • 1970-01-01
      • 2021-04-15
      相关资源
      最近更新 更多