javascript - 将 ajax 请求的 JSON 结果存储到 Easyautocomplete 的 javascript 变量

标签 javascript php json ajax easyautocomplete

我正在尝试使用 ajax 请求根据另一个字段中填写的值在一个字段上实现 EasyAutoComplete 插件。

我有一个 customerid 字段,当它的值发生变化时,我希望 productname 字段使用EasyAutoComplete 插件。

这是我目前所拥有的:

$('#customerid').on('change',function() {
    var products2 = {
          url: function(phrase) {
            return "database/FetchCustomerProducts.php";
        },  
        ajaxSettings: {
            dataType: "json",
            method: "POST",
            data: {
                dataType: "json"
            }
        },
        preparePostData: function(data) {
            data.phrase = $("#customerid").val();
            return data;
          },
        getValue: "name",
        list: {
            onSelectItemEvent: function() {
                var value = $("#productname").getSelectedItemData().id;
                $("#productid").val(value).trigger("change");
            },
            match: {
              enabled: true
            }
        }
    };

$("#productname").easyAutocomplete(products2);
});

FetchCustomerProducts.php 的内容:

if(!empty($_POST["customerid"])){

    $products = $app['database']->Select('products', 'customerid', $_POST['customerid']);

    echo json_encode(['data' => $products]);

}

但是它不起作用。该代码基于在 this 上找到的“Ajax POST”示例页。

最佳答案

您可以使用元素选择类别添加类“check_catogory” 使用event click element select get value is option后,继续发送id到ajax,在php文件中,可以得到$_POST['id']或$_GET['id'],选择find database,echo json_encode后

$("#customerid").change(function(){
    var id = $(this).val();
    if(id!=""){
        $.ajax({
            url:"database/FetchCustomerProducts.php",
            type:"POST",
            data:{id:id},
            dataType: "json",
            cache:false,
            success:function(result){
                 var options = {
                    data:result,
                    getValue: "name",
                    list: {

                        onSelectItemEvent: function() {
                            var value = $("#productname").getSelectedItemData().id;
                            $("#productid").val(value).trigger("change");
                        },

                        match: {

                          enabled: true

                        }

                    }
                };
                $("#productname").easyAutocomplete(options);

            }
        })
    }
});

关于javascript - 将 ajax 请求的 JSON 结果存储到 Easyautocomplete 的 javascript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50922192/

相关文章:

php - Symfony FOS 用户包初始化

javascript - 使用 javascript 转义用户给定的文本。插入页面时有些东西 'unescape'

php - HTML GET 和 POST 方法

php - 如何忽略 NOW() 的时间?

c# - 如何从自定义异常过滤器返回 JSON 结果?

json - 将接口(interface)传递给函数

javascript - 如何在鼠标悬停时将焦点设置到输入元素(搜索框)?

javascript - 当对象需要首先加载 DOM 时,使用最佳的 Javascript 设计模式?

javascript - 如何使用 v-for 在数组内部不时显示数组中的项目

java - MapBox 无法将 JSONObject 转换为 JSONArray