当前,我正在使用Laravel表单,并且必须将一些值传递给数据库。我通过获取值并通过控制器中的请求发送值的传统方式来做到这一点。
在我的表单中,我有一些下拉列表,这些下拉列表是通过jquery的ajax请求填充的。我的ajax请求更新了下拉菜单中的值,用户可以选择它们。
这里是lis之一
<li value="25" data-cost="94.00"><span>25</span></li>
一旦选择了li并将数据传递给Laravel,我就会用jquery创建一个隐藏的输入。
<input type="hidden" name="quantity" value="50">
然后在我的laravel控制器中执行以下操作:
$productOrderDetails->quantity = $request->input('quantity');
我的预期行为是控制器接收到任何输入字段的“值”。但是,我得到null没有值传递。
我怀疑这是因为输入是通过jquery在DOM中创建的,但这与用户在输入框中输入内容的方式不同吗?我意识到基于对一些类似问题的回答,存在客户端和服务器端。任何方向将不胜感激,谢谢!
更新: 此项在DOM中
<input type="hidden" name="quantity" value="100">
提交表单时,DD结果如下:
array:3 [▼
"_token" => "LlE3YWnLZNLNWgGyXUY8E0GqSXz8cpUleIBSwsD5"
"product" => "Postcards"
"job_name" => "Testing"
]
答案 0 :(得分:0)
如果输入内容存在于页面上的表单中,则即使在客户端上使用JS添加了表单,也应在提交表单时将其提交。
使用devtools DOM检查器验证输入是否确实符合您期望的格式。
您还可以尝试使用dd($ request-> all())来查看发送到控制器的所有内容。