【问题标题】:Laravel load view on ajax call not showing changesajax调用上的Laravel加载视图未显示更改
【发布时间】:2020-10-14 10:19:24
【问题描述】:

我试图在我的 laravel 应用程序中调用 ajax 调用视图。但是当我在视图文件中进行更改时,这些更改不会反映在 ajax 调用中。

这是我的控制器功能

public function create(TicketRequest $request)
{
    if($request->input('category')){
    $responseData = array();

    switch ($request->input('category')) {
        case 1:
            $content = $this->getVehicleRequest();
        break;
        case 2:
            $content = 'Coming soon...';
        break;
        case 3:
            $content = 'Coming soon...';
        break;
        case 4:
            $content = 'Coming soon...';
        break;
        case 6:
            $content = 'Coming soon...';
        break;
        case 7:
            $content = 'Coming soon...';
        break;
        default:
            abort(504);
        break;
    }

    $responseData ['content'] = $content;

    return response()->json(array('status'=>'true','content'=>$responseData ['content']), 200);
    }
    $category = Category::active()->get();
    return view('tickets.create',compact('category'));
}

function getVehicleRequest(){
    $employees = Employee::active()->get();
    $category = Category::active()->get();
    $department = Department::active()->get();
    $project = Project::active()->get();
    $vehicletypes = VehicleType::active()->get();
    $locations = Location::active()->get();
    $purposes = Purpose::active()->get();
    $view = View::make('tickets.vehicle-request', compact('employees','category','department','project','vehicletypes','locations','purposes'))->render();
    $contents = (string) $view;
    return $contents;
}

Ajax 调用

 $(document).on('click', '.main_category', function(e) {
    $.ajaxSetup({
          headers: {
              'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
          }
      });
    var id = $(this).attr("id");
    $.ajax({
        url: '{{ route('ticket.create') }}' ,
        type: "GET",
        data: {'category':id},
        // dataType:"HTML",
        async:false,
        cache:false,
        success: function( response ) {
            $('#category_div').hide();
            $('#ajax_data').html(response.content);
        }
      });
});

如果我更改视图文件中的某些内容,当我调用 ajax 时它不会显示。它显示旧文件。我尝试使用工匠缓存:清除,查看:清除,优化:清除。但还是一样。

【问题讨论】:

  • 当你提交新数据时插入表格?

标签: ajax laravel


【解决方案1】:

在您的情况下,您无法从 ajax 调用返回视图。您可以做的一件事是返回 $responseData 而不是返回视图,您可以操作该数据

success: function( response ) {
        $('#category_div').hide();
        $('#ajax_data').html(response.content);
    }

【讨论】:

    猜你喜欢
    • 2015-12-17
    • 2016-12-06
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    • 2019-02-19
    • 1970-01-01
    • 1970-01-01
    • 2017-03-17
    相关资源
    最近更新 更多