jquery - 在 Laravel 中从 AJAX 返回数据

标签 jquery ajax laravel-5

我的讲师为我和我的 friend 提供了一个项目,使用最新的 Laravel 框架创建一个应用程序。我对这个框架不太熟悉。我正在尝试使用 AJAX 将数据加载到我的 View 中。

User Navigation for searching customer

这是显示表格的代码

@foreach($mpelanggan as $mpelanggan)
    {{ Form::open() }}
    {{ Form:: hidden('_method' ,'DELETE')}}
         <tr>
            <p hidden id="kd" value="{{$mpelanggan->Kd_Pelanggan}}"/>
            <td>{{$mpelanggan->Perusahaan}}</td>
            <td align="center">
                <button type="button" class="btntransparant" value="{{$mpelanggan->Perusahaan}}" id="ch">
                    <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>
                </button>
            <a class="fontblack" >
                <span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
            </a> &nbsp
            <button type="submit" class="btntransparant" onclick="return confirm('Are you sure you want to delete this data?');">
                <span class="glyphicon glyphicon-trash" aria-hidden="true"></span>
            </button>
        </a>
    </td>
</tr>
{!!Form::close()!!}
@endforeach

当用户单击+按钮时,它将加载此表中的交易列表:

Customer Transaction

我的路线:

Route::get('trans','TransController@index');
Route::get('getBTB',array('as'=>'getBTB','uses'=>'TransController@getBTB'));

我的 Controller TransController:

public function index(){
 $Mpelanggan = Mpelanggan::all();
 return view('tr.nav')->with('mpelanggan' , $Mpelanggan);
}


public function getBTB(Request $request){
  $term = $request->term;
  $data = Trbtb_h::where('Kd_Pelanggan',$term)->get();
  $result=array();
  foreach ($data as $key => $value) {
    $result[]=['No_BTB'=>$value->No_BTB,'Tgl_BTB'=>$value->Tgl_BTB];
  }
 return Response::json(array('success'=>true,'result'=>$result));
}

AJAX

        $('#ch').click(function(){
         var np=$(this).attr('value');
         var get=$('#table1 > tbody');
         $('#btb-title').text(np);
         $("#pnl-btb").show();
         $("#pnl-faktur").show();
         $("#pnl-bayar").show();
         $("#pnl-btb-list").show();
         $.ajax({
            url         :'getBTB',
             type       :'GET',
             dataType   :'JSON',
             success    :'success',
             data       :{'term':kd},
             success    :function(result){
                 var data = JSON.parse(result);
                 var x;
                 for(x=0;x<data.length;x+=1){
                     var dat = data[i];
                     get.append('<tr><td>'+dat.No_BTB+'</td><td>'+dat.Tgl_BTB+'</td><td align="center"><button type="button" class="btntransparant" value="" id="ch"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> </button> <a class="fontblack" > <span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> </a> &nbsp<button type="submit" class="btntransparant><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></button></a></td></tr>');
                 }
             }
         })
        });

我想将 $result 中的数据放入 btody 标记中,就像客户列表一样。

    <div class="row" id="pnl-faktur">
        <table class="table table-striped table-bordered" id="table2">
            <thead>
                <tr>
                    <th>Plh</th>
                    <th>No. Faktur</th>
                    <th>Tanggal</th>
                    <th>Jatuh Tempo</th>
                    <th>Piutang</th>
                </tr>
            </thead>
            <tbody>

            </tbody>
            <tfoot>
                <td colspan="4" align="right">Total</td>
                <td><input type=text/></t>
            </tfoot>
    </div>

我看了一些关于 AJAX 和 Laravel 的教程,但我不明白,我不知道如何将 $result 加载到 AJAX 脚本中的 View 中。 这是我在 stackoverflow 中的第一个问题,如果我犯了任何错误,我很抱歉

最佳答案

问题是我从成功函数访问了错误的数组。所以我的 friend 建议我将它分成 Controller 中的 2 个不同的变量

AJAX

  $.ajax({
     url        :'getBTB',
     type       :'GET',
     dataType   :'json',
     success    :'success',
     data       :{'term':kd},
     success    :function(result){
         $.each(result.result, function(i,index){
             $('#table4 tbody').append('blablabla');
         });
     }

Controller

public function getBTB(Request $btbid){
  $term = $btbid->term;
  $data = Trbtb_h::where('Kd_Pelanggan',$term)->get();
  $sen['success'] = true;
  $sen['result'] = $data->toArray();
  return Response::json( $sen );
}

关于jquery - 在 Laravel 中从 AJAX 返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36665827/

相关文章:

mysql - Eloquent : "WHERE (equals statement) AND (LIKE statement)"

javascript - 如何在 jquery 中用多个字符串作为分隔符拆分一个字符串

jquery - CSS:当显示设置为无时,没有 DIV 宽度

javascript - 错误: "Maximum call stack size exceed" AJAX calling WebMethod

php - 在悬停时显示来自谷歌图像搜索的数据属性的图像

php - 拉维尔 5 : FineUploader - Uploads directory isn't writable

javascript - 需要将ajax响应分配给div

JavaScript 可能存在内存泄漏

php - 无法使用php jquery和ajax在mysql中输入数据

javascript - 使用 Vue 和 Axios 进行投票按钮