2

我有一个可能很简单的问题。我有一个用于精美下拉框的 jQuery 插件。

该插件通过以下方式调用:

$('#demoBasic').ddslick({
    data: ddData,
    width: 300,
    imagePosition: "left",
    selectText: "Select your favorite social network",
    onSelected: function (data) {
        console.log(data);
    }
});

填充下拉列表的 JSON 数据是:

var ddData = [
{
    text: "Facebook",
    value: 1,
    selected: false,
    description: "Description with Facebook",
    imageSrc: "http://dl.dropbox.com/u/40036711/Images/facebook-icon-32.png"
},
{
    text: "Twitter",
    value: 2,
    selected: false,
    description: "Description with Twitter",
    imageSrc: "http://dl.dropbox.com/u/40036711/Images/twitter-icon-32.png"
}
];

所以我想要做的是动态填充 JSON 数据。我可以编写 PHP 代码来进行搜索并返回 JSON,但我将如何以编程方式执行此操作,以便根据搜索加载它?

我有一个想法,只是通过一个 ajax 帖子加载它,然后在 div 中返回结果......这行得通吗?

喜欢:

submitHandler: function() {
    $.post('lookup.php', $("#lookup").serialize(), function(data) {
        $('#result').html(data);
    });
},

我可以通过这种类型的调用返回一个 jQuery 脚本吗?

4

1 回答 1

0

昨天我遇到了类似的问题,我想在更改另一个过滤器时更新 ddSlick 选项。我为此找到的最简单的方法是破坏和重建。

在此示例中,我过滤了一个选项列表,但该方法将适用于 Ajax 调用或其他提供的选项。每当image_folder_select更改选择时:

  1. 生成一个新的选项列表。在这个例子中,我使用 jQuerygrep来创建一个新的过滤数组,ddData通过一个额外的自定义属性 ( image_folder_id) 匹配项目。注意:主ddData列表是在页面加载时定义的。
  2. image_select选择列表通过 恢复到其原始状态ddslick('destroy')
  3. 带有新选项列表的新 ddSlick 实例绑定到image_select.

例子:

$("#image_folder_select").change(function () {
    filtered_ddData = $.grep(ddData, function(e) {return e.image_folder_id == $("#image_folder_select").val()});

    $('#image_select').ddslick('destroy');
    $('#image_select').ddslick({
        data: filtered_ddData,
        width: 512,
        height: 256,
        onSelected: function(data){
            $('#image_file_id').val(data.selectedData.value);
        }
    });
});
于 2017-12-01T14:40:47.810 回答