Php 从JSON调用后,将未定义的变量放入blade

Php 从JSON调用后,将未定义的变量放入blade,php,json,laravel,Php,Json,Laravel,我已经在我的网站上注册了表格。这是正确的提交之前。现在我想使用ajax提交我的表单,并想将一个变量从controller返回到JSON中,我将在blade文件中使用它 表单正在提交,值显示在数据库中,但重定向后返回错误 Undefined variable: seller in report blade 我试图解码我的变量使其工作,但仍然是相同的错误 我该怎么做 报告刀片 @foreach(json_decode($seller, true) as $row) <a href=

我已经在我的网站上注册了表格。这是正确的提交之前。现在我想使用ajax提交我的表单,并想将一个变量从controller返回到JSON中,我将在blade文件中使用它

表单正在提交,值显示在数据库中,但重定向后返回错误

Undefined variable: seller in report blade
我试图解码我的变量使其工作,但仍然是相同的错误

我该怎么做

报告刀片

 @foreach(json_decode($seller, true) as $row)

  <a  href="{{route('Report', $row->id) }}" >
    {{ __('Show Report of ')}} {{$row->car_title}}
  </a>

 @endforeach
JavaScript

$("#submit-all").click(function(e){
    e.preventDefault();
     var _token = $('input[name="_token"]').val();

    $.ajax({
        type: "post",
        url: "{{ route('form_for_private_sellers') }}",
        data : $('#msform').serialize() + "&_token=" + _token,

        dataType: 'JSON',
        beforeSend: function(){
            // Show loading image
            $("#se-pre-con").show();
        },
        success: function(data) {
            window.location = "http://127.0.0.1:8000/report/";
        },
        complete:function(data){
            // Hide loading image
            $("#se-pre-con").hide();
        }
    });
});

你需要两条路线

首先是渲染刀片

return view('report');
第二个是卖东西的

$seller = Sellers::latest()->take(1)->get();
return $seller

你需要两条路线

首先是渲染刀片

return view('report');
第二个是卖东西的

$seller = Sellers::latest()->take(1)->get();
return $seller

从你的评论中可以理解

window.location = "http://127.0.0.1:8000/report/";
他会按路线走

Route::get('/report', function () {
  return view('report');
})->name('private_seller_report');
Report blade需要一个名为
$seller
的变量,但它不是从路由发送的。您需要将路线更改为类似以下内容:

Route::get('/report', function () {
  $sellers = Seller::get(); //your logic
  return view('report', ['seller' => $sellers]);
})->name('private_seller_report');

或者,如果希望避免增加路由,您可以将路由指向控制器中的方法。

从您的评论中可以理解

window.location = "http://127.0.0.1:8000/report/";
他会按路线走

Route::get('/report', function () {
  return view('report');
})->name('private_seller_report');
Report blade需要一个名为
$seller
的变量,但它不是从路由发送的。您需要将路线更改为类似以下内容:

Route::get('/report', function () {
  $sellers = Seller::get(); //your logic
  return view('report', ['seller' => $sellers]);
})->name('private_seller_report');

或者,如果您希望避免阻塞路由,可以将路由指向控制器中的方法。

您需要Javascript来填充返回的结果。Blade将无法访问ajax请求返回的内容。刀片服务器是在服务器端解析的。@user3532758由于我已经尽了最大的努力,您能告诉我该怎么做吗。我对jquery不太在行,但让我为您发布一个答案。@user3532758请。记住一件事,变量应该可以访问foreach()数组,这对我来说非常重要。等等,我可能说得太早了。实际上,您正在返回整个报表视图。您需要Javascript来填充返回的结果。Blade将无法访问ajax请求返回的内容。刀片服务器是在服务器端解析的。@user3532758由于我已经尽了最大的努力,您能告诉我该怎么做吗。我对jquery不太在行,但让我为您发布一个答案。@user3532758请。记住一件事,变量应该可以访问foreach()数组,这对我来说非常重要。等等,我可能说得太早了。您实际上返回了整个报表视图。完美的方法。所以我只需从我的控制器中删除查询和返回语句,并将我的路由更新为您建议的路由,它就成功了!。。。完美的方法。所以我只需从我的控制器中删除查询和返回语句,并将我的路由更新为您建议的路由,它就成功了!。。。我们不需要定义两个路由,但我们可以在同一个路由中发送变量,如下面的#user3532758。尽管如此,当你给我指出正确的方向时,我还是会投票支持你的答案。只缺少您的代码。我们不需要定义两个路由,但我们可以在同一路由中发送变量,如下面的#user3532758。尽管如此,当你给我指出正确的方向时,我还是会投票支持你的答案。只有你的代码丢失了。