Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在laravel中将ajax响应返回的数据显示为视图_Ajax_Laravel 5 - Fatal编程技术网

如何在laravel中将ajax响应返回的数据显示为视图

如何在laravel中将ajax响应返回的数据显示为视图,ajax,laravel-5,Ajax,Laravel 5,我是Ajax新手,希望在laravel中返回一个部分视图以响应Ajax调用,因此当我单击链接以模式显示数据时,它不起作用,并且说尝试获取非对象的属性。有什么帮助吗 这是我的代码: <tr> <td style="border-right: 1px solid #ddd;"><?php echo $i;?></td> <td>{{ $sale->item_name }}</td> <td&g

我是Ajax新手,希望在laravel中返回一个部分视图以响应Ajax调用,因此当我单击链接以模式显示数据时,它不起作用,并且说尝试获取非对象的属性。有什么帮助吗

这是我的代码:

<tr>
    <td style="border-right: 1px solid #ddd;"><?php echo $i;?></td>
    <td>{{ $sale->item_name }}</td>
    <td>{{ $sale->brand_name }}</td>
    <td>{{ $sale->category_name }}</td>
    <td>{{ $sale->fname }} &nbsp; {{ $sale->lname }}</td>
    <td>{{ $sale->sale_date }}</td>
    <td>{{ $sale->quantity }}</td>
    <td>{{ $sale->unit_name }}</td>
    <td><span>$</span>{{ $sale->unit_price }} </td>
    <td><span>$</span><?php echo $sale->quantity*$sale->unit_price;?> </td>
    <td>
        <a href="#bill" class="btn btn-xs btn-green mr-5" type="button" tabindex="0" data-toggle="modal" data-target="#reportModal" onclick="load_modal_data('{{ $sale->sale_id }}','/sales/bill','billContent')">
        <i class="fa fa-pencil"> Bill</i></a>
        <a href="/purchase/item" class="btn btn-xs btn-green mr-5"><i class="fa fa-search"> View</i></a>
        <a href="#" class="btn btn-xs btn-lightred"><i class="fa fa-remove"> Del</i></a>
    </td>
</tr>
控制器:

public function bill()
{
    $id = Input::get('identity');
    $sales = DB::table('sales')
        ->join('brands','brands.bid','=','sales.brand_id')
        ->join('units','units.unit_id','=','sales.unit_id')
        ->join('categories','categories.cat_id', '=','sales.category_id')
        ->join('customers','customers.cid','=','sales.c_id')
        ->select('sales.*','brands.brand_name','categories.category_name','customers.fname','customers.lname','units.unit_name')
        ->where('sales.sale_id',$id)->first();
    $returnHTML = view('partials.item-bill')->with('sales',$sales)->render();
    return response()->json(array('success'=>true, 'html'=>$returnHTML));
}
这是我的项目bill.blade.php

<!-- tile body -->
<div class="tile-body p-0">
    <div class="table-responsive">
        <table class="table mb-0" id="usersList">
            <thead>
            <tr>
                <th style="width:20px;">No</th>
                <th>Item Name</th>
                <th>Company</th>
                <th>Category</th>
                <th>Customer</th>
                <th>Sale Date</th>
                <th>Quantity</th>
                <th>Unit</th>
                <th>Price</th>
                <th>Total</th>
            </tr>
            </thead>
            <tbody>
                <tr>
                    <td>{{ $sales->item_name }}</td>
                    <td>{{ $sales->brand_name }}</td>
                    <td>{{ $sales->category_name }}</td>
                    <td>{{ $sales->fname }} &nbsp; {{ $sales->lname }}</td>
                    <td>{{ $sales->sale_date }}</td>
                    <td>{{ $sales->quantity }}</td>
                    <td>{{ $sales->unit_name }}</td>
                    <td><span>$</span>{{ $sales->unit_price }} </td>
                    <td><span>$</span><?php echo $sales->quantity*$sales->unit_price;?> </td>
                </tr>
            </tbody>
        </table>
    </div>

不
项目名称
单位
类别
顾客
销售日期
量
单位
价格
全部的
{{$sales->item_name}
{{$sales->brand_name}
{{$sales->category_name}
{{$sales->fname}{{{$sales->lname}
{{$sales->sale_date}
{{$sales->quantity}
{{$sales->unit_name}
${{$sales->单价}
$ 

注意:我使用的是Laravel 5.2

唯一需要更改的是:

$('#'+target_tag).html(result.html);

您将得到一个json作为响应,响应为
result.html

我终于解决了这个问题,想在这里分享一下。 我执行了以下步骤:

  • 将路由方法从GET更改为POST

    Route::post('sales/bill/{id}','SalesController@bill');
    
  • 更改js函数load\u model\u data()的参数

    }

  • 还有控制器

    public function bill($id)
     {
        .
        .
        .
     }
    

  • 现在它工作了。

    谢谢你的回复,我试过了,但仍然是相同的错误好的-你得到了什么错误?你可以控制台中的错误:jquery-1.11.2.min.js:4 POST 500(内部服务器错误)和Laravel Debugbar中的错误:Saying->试图从我的部分页面中获取非对象的属性你可以在从数据库中获取它之后
    dd($sales)
    。有许多内部联接可以过滤出结果,您可以得到
    null
    value。
    <a href="#bill" ...  onclick="load_modal_data('/sales/bill/{{ $sale->sale_id }}','billContent')">
    
    function load_modal_data(route,target_tag)
    {
    var identity = route.substring(route.lastIndexOf('/') + 1);
    // $('#'+target_tag).addClass('animation-loading')
    $.ajax({
        headers: { 'X-CSRF-Token' : $('meta[name=_token]').attr('content') },
        url: route,
        type:'post',
        data:{ id: identity},
        success:function(result){
            $('#'+target_tag).html(result.html);
        },
        error: function (result) {
            alert('Ooops something went wrong!');
        }
    });
    
    public function bill($id)
     {
        .
        .
        .
     }