【问题标题】:How popular is a select based on another in laravel?在 laravel 中基于另一个选择的选择有多受欢迎?
【发布时间】:2018-01-08 10:16:17
【问题描述】:

我正在创建一个分类系统。父类由'parent_id' = 0标识。子类通过相同的parent_id关联,但接收父类的值。我考虑过创建一个动态选择,在其中选择父类别并根据所选选项填充另一个选择。

我创建了一个接收所有父类别的选择。

查看

<select class="form-control" name="categoryid" id="categoryid">
        @foreach($mlb as $mlbcategory)
        <option value="{{$mlbcategory->erp_mcid}}">{{$mlbcategory->erp_title}}</option>
        @endforeach
</select>

控制器

public function update($id, Request $request)
    {
      $mlb = MlbCategory::where('erp_parentid', '=', NULL)->get();
      return view('admin.categoriesupdate')->with('cat', $cat)->with('mlb', 
      $mlb);
    }

所以我试图从 select 中获取值并传递给我可以返回子类别的控制器。

$('select[name=categoryid]').change(function () {
  var categoryid = $(this).val();
            $.ajax({
                url: {{route('categories::postForm')}},
                type: 'POST',
                success: function (data) {
                    $('#categoryid').val(data.categoryid);
                }
            });
            return false;
        });
});

获取价值的功能

 public function getFilha(Request $request)
    {
      $data= $request->id;

     return response()->json($data);
    }

但是它没有返回任何东西,我的想法是操纵在控制器中接收到的这个值并返回子类的值,有什么建议吗?

【问题讨论】:

  • 尝试为您的 ajax 请求返回一个数组,将单个值转换为 json 对象非常困难。 return response()-&gt;json(['data' =&gt; $data]);
  • 你没有在你的 ajax 帖子中发送任何数据
  • 我将编辑我的问题,我已经找到了我最大的疑问。
  • 为什么? @charlietfl
  • 为什么?因为设置对象中没有data 属性,所以没有发布任何内容

标签: php jquery laravel


【解决方案1】:

所以据我所知,没有数据发送到您的控制器。

Javascript

$('select[name=categoryid]').change(function () {
    var categoryid = $(this).val();
    $.ajax({
        url: {{route('categories::postForm')}},
        data: {'categoryId':categoryid},
        dataType: 'json',
        type: 'POST',
        success: function (data) {
            $('#categoryid').val(data.categoryid);
        }
    });
    return false;
});

您现在可以在您的控制器中访问 c​​ategoryId:

public function update(Request $request, $id)
{
  $categoryId = $request->input('categoryId');
  ....
}

我希望这会有所帮助。

【讨论】:

  • 很好的答案,但是例如,如何在控制器中检查这些值?比如我用 dd($categoryId);而且他什么也没回我。
  • 无论如何 - 尝试更多地调试 javascript 端,检查 categoryid 是否确实包含您要发送的值,根据请求发布值,然后我们将进入控制器。跨度>
  • 我在成功后放了一个 'console.log(data)' 但没有任何返回,只是关于我的令牌的消息
  • $.ajax 调用之前 console.log(categoryid); - 然后在 web-inspector 中检查实际发布的标题。如果一切正常,您可以继续检查路由、控制器以及最终的返回值。
猜你喜欢
  • 2021-09-10
  • 1970-01-01
  • 1970-01-01
  • 2019-02-14
  • 1970-01-01
  • 2020-08-09
  • 2020-10-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多