ajax&laravel-无法基于动态下拉选择填充文本框

tyu7yeag  于 2021-06-17  发布在  Mysql
关注(0)|答案(5)|浏览(343)

我在文本框上显示ajax数据有问题,这是我唯一的问题,我不能在文本框上显示数据,请参阅我的
控制器中的代码

public function create()
{
    $aircraft = Aircraft::all();
    $aircraft_reg = Aircraft::pluck('aircraft_registration_number', 'id')->toArray();
    return view('admin.aircrafts.create',compact('aircraft_reg','aircraft'));
}

public function findPrice(Request $request) {
    $p = Aircraft::select('aircraft_id')->where('id',$request->id)->first();
    return response()->json($p);
}

路由中的代码

Route::get('/admin/aircrafts/findPrice', 'Admin\AircraftsController@findPrice');

视图中的代码

{{Form::select('productname', $aircraft_reg,null,['class' => 'form-control productname', 'placeholder' => 'Select RPC No.'])}}<br>
    <br>
    {{Form::text('prod_price', '', ['class' => 'form-control prod_price'])}}

ajax中的代码

<script type="text/javascript">

  $(document).ready(function(){
        $(document).on('change','.productname',function(){
            var prod_id=$(this).val();

            var a=$(this).parent();
            console.log(prod_id);
            var op="";

            $.ajax({
            type:'get',
            url:'{!! URL::to('admin/aircrafts/findPrice') !!}',
            data:{'id':prod_id},
            dataType:'json',//return data will be json
            success:function(data){
                console.log("aircraft_id");
                console.log(data.aircraft_id);

                // here price is column name in products table data.coln name

                a.find('.prod_price').val(data.aircraft_id);
            },
            error:function() {
            }
        });
     });
  });
  </script>

我的控制台上有个警告。
这是警告
[冲突]将非被动事件侦听器添加到滚动阻止“鼠标滚轮”事件。考虑将事件处理程序标记为“被动”以使页面更具响应性。看到了吗https://www.chromestatus.com/feature/5745543795965952 create:342
这是输出,但没有显示任何内容

8wtpewkr

8wtpewkr1#

您的laraveljson应该具有关联数组。如下所示:返回json_encode(array(“aircraft_id”=>$p));

pokxtpni

pokxtpni2#

请遵循此代码结构$(document).ready(function(){

$('.productname').on('change',function(e){
e.preventDefault();
var prod_id=$(this).val();
$.ajax({
type:'get',
url:'{!! URL::to('admin/aircrafts/findPrice') !!}',
data:{id:prod_id},
dataType:'json',//return data will be json
success:function(data){
console.log(data.aircraft_id);
$('.prod_price').val(data.aircraft_id);

},
error:function(){
alert("Error Occurred");
}
});

});

});

1qczuiv0

1qczuiv03#

请尝试更改此$(文档)。在('change','.productname',function()上{
通过这个
$('.productname').on('更改',函数(e){
用e代替这个
请试试这个,让我看看如何:)

sauutmhj

sauutmhj4#

在jquery中进行更改。
remove var a=$(this).parent();更改数据:{id':prod\u id},更改为数据:{id:prod\u id},更改a.find('.prod\u price').val(data.aircraft\u id);到$('.prod\u price').val(data.aircraft\u id);

2hh7jdfx

2hh7jdfx5#

//确保你有这个在你的html头文件
//在编写ajax代码之前,还要确保jquery脚本中有这个脚本

$.ajaxSetup({
    headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}
});

相关问题