输入具有相同名称输入的POST,如PHP POST

时间:2018-01-18 12:49:34

标签: php jquery ajax laravel-5

HTML表单的摘录:

<input type="text" id="1" name="name[1]" class="input-number" onchange="input_onchange(this.id)" value="39" min="1" max="25">
<input type="text" id="1" name="name[2]" class="input-number" onchange="input_onchange(this.id)" value="39" min="1" max="25">

我的AJAX电话:

$.ajax({
    type: 'POST',
    url: '/sepetim/ajax',
    data: {
        '_token': $('input[name="_token"]').val(),
        //'name': $('input[name=name]').val(),
        'name': $('input[name=name[' + id + ']]').val()
    },
    success: function(data) {
        $('#fiyat').replaceWith("<span class='para fw6'>" + data.formattedPrice + " TL</span>");
    }
});

从我的控制器中提取:

public function  addStock(Request $request) {
    $data = new ShoppingCartDetail();
    $data->cart_id = $request->input("cart_id");
    $data->stock_id = $request->input("stock_id");
    $data->price = 1;
    $data->save();
    $data->name = $request->input("name");
    $data->price = 1200;
    $formattedPrice = number_format($data->name * $data->price, "2" , ",", ".");
    return response ()->json ([ "data" => $data , "formattedPrice" => $formattedPrice ]);
}

我认为违规行是这一行:

$data->name = $request->input("name");

我试过了,但我无法获得名为' name '的输入?

1 个答案:

答案 0 :(得分:0)

首先,您不能为多个元素提供相同的ID;因此,我重命名了id的第二个实例。

<input type="text" id="1" name="name[]" class="input-number" onchange="input_onchange(this.id)" value="39" min="1" max="25" />
<input type="text" id="2" name="name[]" class="input-number" onchange="input_onchange(this.id)" value="39" min="1" max="25" />

另请注意,我已删除您为name属性指定的索引 指定名称时,只需要方括号,它将自动编入索引。

其余的PHP代码看起来不错。

JavaScript代码存在一些问题 - 无论是在制作中,还是您复制并粘贴了一个选区,而忘记对其进行格式化。
违规行在success之后,有一个逗号。我假设您刚刚复制了该部分的顶部,如果不是这样,那么只需删除逗号即可解决该错误。

请记住,在开发时,您可以打开控制台(通常按F12),您可以查看与JavaScript代码相关的任何错误。