【问题标题】:html multiple select chosen js submit formhtml多选选择的js提交表单
【发布时间】:2017-10-04 19:30:26
【问题描述】:

我在PHP 中有这个简单的选择作为回声(使用Chosen JS):

echo" <tr>
<th>By country:<br />
<select id=\"firstselect\" name=\"country[]\" 
    data-placeholder=\"Country...\" multiple class=\"chosen-select\">
        <option value=\"dontcare\">dontcare</option>";
        foreach ($states as $state) {
            echo "<option value=\"" . $state->stat .
                 "\" >" . $state->stat . "</option>";
         }
echo "</select> </th></tr>";

从提交和刷新页面值后未选择。

如果我只有一个选择,这对我有用:

var my_val = '<?=$_POST['price']?>'; 
$("#cenan").val(my_val).trigger("chosen:updated");

但我不知道如何在数组的情况下将其设置为选中状态。你能帮我看看一些代码吗?我花了几个小时没有任何结果。

【问题讨论】:

    标签: php html select jquery-chosen


    【解决方案1】:

    您将表单数据发布到同一页面然后刷新,对吗?

    如果是这样,那么您只需稍微更改您的 PHP 以在页面刷新时通过检查其值是否存在于 $_POST['country'] 数组中来将所选选项标记为选中。

    此外,由于您将 echo 输出括在双引号中,因此无需转义变量,因为 PHP 无论如何都会解析它们,只需在 HTML 中需要引号的字符串中使用单引号即可。对眼睛更容易。

    foreach ($states as $state) {
        if ((!empty($_POST['country'])) && (in_array($state->stat, $_POST['country']))) {
            echo "<option value='$state->stat' selected>$state->stat</option>";
        } else {
            echo "<option value='$state->stat'>$state->stat</option>";
        }
    }
    

    【讨论】:

      【解决方案2】:

      假设您有如下 HTML 选择:

      <select id='firstselect' multiple class="chosen-select" >
      <option value='a'>A</option>
      <option value='b'>B</option>
      <option value='c'>C</option>
      </select>
      

      解决办法如下:

      <?php
      $arr = ['a','b']; // PHP Sample Array
      ?>
      
      
      var js_json =  '<?php echo json_encode($arr); ?>';
      var js_json_string = JSON.stringify(js_json);
      var js_json_array = JSON.parse(js_json_string); // ['a','b']
      
      
      // initialize
      $("#firstselect").chosen();
      
      // Loop for making HTML <select> options selected.
      $.each(js_json_array,function(i,v){
      $('#firstselect option[value=' + v + ']').attr('selected', true);
      });
      
      //Updating Chosen Dynamically
      $("#firstselect").trigger("chosen:updated");
      

      【讨论】:

        猜你喜欢
        • 2013-02-13
        • 1970-01-01
        • 2013-11-23
        • 2017-01-30
        • 2023-02-17
        • 2013-06-11
        • 1970-01-01
        • 2017-08-10
        • 2012-05-05
        相关资源
        最近更新 更多