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 '的输入?
答案 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代码相关的任何错误。