使用ajax请求填充选择的多个get插件

时间:2013-12-15 07:56:34

标签: php ajax get multi-select jquery-chosen

我在使用ajax调用中的数据填充所选插件时遇到问题。我厌倦了以下帖子,

Jquery Chosen plugin - dynamically populate list by Ajax

Multiple Select - Chosen jQuery

Jquery chosen ajax call populate multiselelect not working

但没有帮助。数据没有填满:(我的ajax请求如下,

 <script type="text/javascript" lang="javascript">
 function doGetTag() {
        alert('here');     

        $.ajax({
            url: 'index.php/rest/resource/qtag',
            //data: data,               
            success: function(data) {
                var jsonObj = JSON.parse(data);
                var tags = "";
                var curVal = document.getElementById('tags').innerHTML;

                for(var i = 0; i < jsonObj.length; i++) {
                    var tagObj = jsonObj[i];
                    //document.write("<option>" + tagObj.tagName + "</option>");
                    var tagHtml = "<option>" + tagObj.tagName + "</option></br>";
                    tags = tags + tagHtml ;
                }

                tagTotal = curVal + tags;
                document.getElementById('tags').innerHTML = tagTotal;            
                alert( document.getElementById('tags').innerHTML);
            },
            type: "get"     
        });
 }   
 </script>

返回一个json字符串。如果我在消息框中提醒它,数据会在此处正确显示。但问题是如何填充多个get插件?以下是我的HTML,

 <select data-placeholder="Tag your question here" style="width:350px;height:50px;" multiple class="chosen-select" id="tags">
      <option value="" ></option>

 </select>

我对这个插件很新,非常感谢你的帮助:)。

FYI

我是使用直接php完成的,如下所示,

 <select data-placeholder="Tag your question here" style="width:350px;height:50px;" multiple class="chosen-select" id="tags">
      <option value="" ></option>

               <?php
                    $con=mysqli_connect("localhost","user","pass","db");
                    $result = mysqli_query($con,"SELECT * FROM tags");

                    while($row = mysqli_fetch_array($result))
                    {
                        echo"<option>".$row['tagName']."</option>";
                        echo"</br>";
                    }
                ?>
   </select>

并正确显示数据,但项目要求声明必须使用AJAX 请求来填充数据。非常感谢:)非常感谢您的专家建议:)

1 个答案:

答案 0 :(得分:0)

全部检查你的 url:'index.php / rest / resource / qtag',

这可能有效:

success: function(data) {

   $("#tags").html(data).trigger('liszt:updated');

}

其中data =(来自sourse的回声)

  

&lt; option value = 0&gt; &LT; /选项&GT;
  &lt; option value = 1&gt;选项1&lt; / option&gt;
  &lt; option value = 2&gt;选项2&lt; / option&gt;