【问题标题】:Laravel 5.5 send data to view without reloading pageLaravel 5.5 发送数据查看无需重新加载页面
【发布时间】:2018-03-09 00:53:22
【问题描述】:

在我看来,我有一些可以使用的数据 $data 在此 $data 是其他几个带有键的数组。现在我的目标是当用户从下拉列表中选择某些内容时,我想在不进行重定向的情况下更新这个 $data 数组。

我知道我需要使用 AJAX 并且我的 AJAX 调用工作正常我只是对我应该在我的控制器方法中执行的操作有点困惑我需要执行类似的操作但无需刷新页面但这会删除我之前已经在 $data 数组中的所有其他数据

这是我的方法:

/**
 * Fetches a company 
 *
 * @param $companyId
 */
public function fetchCompany($companyId)
{
    $company = Company::where('id', $companyId)->first();

    $data['company'] = $company;

    return view('this should be the same view that I did my ajax call from', ['data' => $data]);
}

所以我想将此$company 添加到我在视图中使用的现有$data 数组中。

【问题讨论】:

标签: php jquery ajax laravel


【解决方案1】:

根据我目前的理解回答。

public function fetchCompany($companyId)
{
    $company = Company::where('id', $companyId)->first();
    return response()->json($company);
}

那么你需要像这样调用ajax

<script>
        $(document).ready(function(){
            $("whatever your dropdown id").change(function(){
                $.ajax({
                    url:'yoururl',
                    type: 'whatever datatype',
                    dataType:'json',
                    success: function(data){
                        var x;
                        for(x in data){
                            $("#div1").append(data[x]);
                        }
                    }
                });
            });
        });
    </script>

【讨论】:

  • #div1 是您要加载数据的位置,var x 仅用于循环,您也可以使用这种循环 for(var x in data)
  • 但我不想将这些数据加载到 div 中。我需要更新我已经在视图的其他部分使用的$data
  • 我需要做类似$data['company'] = $companyreturn view('sameview', ['data' =&gt; $data]); 之类的事情
  • 是的 ´$companyId` 因我在下拉列表中选择的内容而异,但我已经查询了正确的 $company 我只需要使用我的其他数据来获取它
  • 响应数据是要替换现有的公司记录还是将其附加到具有初始加载记录的现有列表的页面?
猜你喜欢
  • 1970-01-01
  • 2016-04-29
  • 1970-01-01
  • 2019-11-12
  • 1970-01-01
  • 2018-08-09
  • 2016-04-27
  • 1970-01-01
相关资源
最近更新 更多