将ajax请求的JSON结果存储到javascript变量,以便于Easyautocomplete

将ajax请求的JSON结果存储到javascript变量,以便于Easyautocomplete,javascript,php,json,ajax,easyautocomplete,Javascript,Php,Json,Ajax,Easyautocomplete,我尝试在一个字段上实现EasyAutoComplete插件,该字段基于另一个字段中填充的值,使用ajax请求 我有一个customerid字段,当它的值更改时,我希望productname字段使用EasyAutoComplete插件显示与该customerid相关的所有产品 以下是我到目前为止的情况: $('#customerid').on('change',function() { var products2 = { url: function(phrase) {

我尝试在一个字段上实现EasyAutoComplete插件,该字段基于另一个字段中填充的值,使用ajax请求

我有一个customerid字段,当它的值更改时,我希望productname字段使用EasyAutoComplete插件显示与该customerid相关的所有产品

以下是我到目前为止的情况:

$('#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]);

}

但是它不起作用。代码基于第页上的“Ajax POST”示例

您可以使用元素选择类别添加为类别检查\u catogory 使用事件点击元素选择获取值选项后,继续将id发送到ajax,在文件php中,您可以获取$\u POST['id']或$\u get['id'],选择查找数据库,在echo json编码之后

$customerid.changefunction{ var id=$this.val; 如果={ $.ajax{ url:database/FetchCustomerProducts.php, 类型:POST,, 数据:{id:id}, 数据类型:json, cache:false, 成功:结果{ 变量选项={ 数据:结果, getValue:name, 名单:{ onSelectItemEvent:函数{ var值=$productname.getSelectedItemData.id; $productid.valvalue.triggerchange; }, 匹配:{ 已启用:true } } }; $productname.easyAutocompleteoptions; } } } };
请求是否正确发送到服务器?@SupunDharmarathne它表示内容长度为零,在“大小”选项卡下,它也是0B。这是否意味着没有发送任何内容?@SupunDharmarathne正在发送数据,以下是内容:dataType=json&phrase=2186您可以共享浏览器Chrome网络选项卡上发送到服务器的内容的屏幕截图吗?@SupunDharmarathne现在我得到了正确的响应,如图所示。但是插件本身不起作用,是否绝对有必要将triggerchange添加到$productid.valvalue?