隐藏输入中的值不会传递给控制器

时间:2019-07-12 12:46:33

标签: php laravel

我正在尝试通过Ajax调用传递用户ID,但是它是空的。 我觉得输入标签中的值=“ {{$ user-> id}}”“不正确,但不确定。

以下是我的输入标签:

<div>   
<input type = "hidden" name = "id" value="{{ $user->id }}">
</div>

以下是我的Ajax代码:

$('#grp-save').on('click', function () {
    $.ajax({
            method: 'POST',
            url: urlGrp,
            data: {uid: $('#id').val(), _token: token}
        })

    .done(function () {

            $('#join-req').modal('hide');
        });
});

以下是我的控制器:

public function jmGroup(Request $request)
    {

               $u_id = $request['uid'];

                      $grpusr = new Grpusr();
                      $grpusr->user_id = $u_id;
                       $grpusr->save();


                    return redirect()->back();

3 个答案:

答案 0 :(得分:2)

您的字段上没有id,因此可以添加以下内容:

<input type="hidden" name="id" id="id" value="{{ $user->id }}">

或改用它:

$('input[name=id]').val()

答案 1 :(得分:1)

您正在尝试选择ID为id的字段的值:

$('#id').val()

但是您的输入字段不包含id属性:

<div>   
<input type = "hidden" name = "id" value="{{ $user->id }}">
</div>

添加id="id"应该可以解决。

<input type = "hidden" name = "id" id="id" value="{{ $user->id }}">

答案 2 :(得分:0)

您需要为隐藏的输入字段定义id参数,因为这是您在JS代码中引用的内容。

<input type = "hidden" id="id" name = "id" value="{{ $user->id }}">
$('#id').val()

Jquery基本上是在寻找ID为ID的元素。您应该给它一个更有意义的名称,例如userId,因为文档中不能包含多个具有相同ID的元素