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>");
}
});
从我的 Controller 中摘录:
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”的输入?
最佳答案
首先,不能为多个元素指定相同的 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 代码相关的任何错误。
关于php - 输入 POST 与 PHP POST 相同的名称输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48321787/