AJAX返回未定义的值

时间:2019-07-01 13:30:07

标签: ajax laravel

我正在尝试从选定的国家/地区名称获取货币,但是ajax返回的值未定义。

Ajax代码

$(document).on('change', '#country' ,function () {
        var prod_id=$(this).val();
        console.log(prod_id);
        var a=$(this).parent();
        var op="";
        $.ajax({
            type:'get',
            url:'{!!URL::to('searchCurrency')!!}',
            data:{'id':prod_id},
            dataType:'json',//return data will be json
            success:function(data){
                console.log(data.currency);
                    // here price is column name in products table data.coln name
                a.find('#currency').val(data.currency);
            },
            error:function(){}
        });
    });
$.ajaxSetup({ headers: { 'csrftoken' : '{{ csrf_token() }}' } });

控制器中的代码

$currency=Currency::select('currency')->where('country','=',$request->id)->pluck('currency')->first();
return response()->json($currency);

1 个答案:

答案 0 :(得分:1)

您应该查看开发工具中的请求输出。查询的结果是一个字符串,因此这也是从ajax请求返回的内容。没有属性。

要获取货币,只需在JavaScript中使用data变量:

success: function (data) {
    a.find('#currency').val(data);
},

得到undefined的原因是String没有属性currency