动态dbrekalo fastselect与Codeigniter

时间:2017-07-18 05:42:06

标签: php jquery json ajax codeigniter

我正试图找到一种方法来填充我的一个控制器的多选(快速选择)下拉列表。我试图通过将click事件绑定到multiple select来发出ajax请求。多个select的data-url属性将等于ajax的响应,该响应在json中编码。我认为这是可能的,因为在dbrekalo fastselect的文档中,data-url属性接受json文件(所以我认为它可以接受任何参数/值,只要它返回json)。

我还尝试创建一个虚拟json文件,保存在我的views文件夹中,并将文件名放在data-url属性中,但是我得到了同样的错误:

Uncaught TypeError: Cannot use 'in' operator to search for '16894' in <!DOCTYPE html>

请告诉我如何才能成功实现这一目标。我找不到另一个用于多选的jquery插件,可以添加其他(在当前列表中不可用)功能。

这就是视图的样子:

<div class="col-lg-7">
<input
    id="multip"
    type="text"
    multiple
    class="multipleSelect"
    data-user-option-allowed="true"
    data-load-once="false"
    name="skills[]";/>
</div>

ajax:

$(".multipleSelect").click(function() {

        var url = "<?php echo base_url()?>applicant/get_skill_list";
        $.ajax({

            dataType: "JSON",
            type: "GET",
            url: url,
            success: function(data) {
                console.log(data);
                $("#multip").attr("data-url", data);
            }
        });
    });

我的控制器:

 public function get_skill_list() {

        $data = $this->Dropdown_model->get_skill_list();
        echo json_encode($data);
    }

1 个答案:

答案 0 :(得分:0)

在fastselect插件中,数据将动态地通过ajax加载,在这种情况下,你需要使用下面的行。

<input type="text" id="multip" class="singleInputDynamic" data-url="<?php echo base_url('applicant/get_skill_list')?>" data-load-once="true" name="language" />


<script type="text/javascript">
     $('#multip').fastselect();
</script>

这样可确保您的数据以下列格式显示。 text-value对。

[
    {"text": "Afghanistan", "value": "Afghanistan"},
    {"text": "Albania", "value": "Albania"},
    {"text": "Algeria", "value": "Algeria"},
    {"text": "Angola", "value": "Angola"}
]

这会对你有帮助。