我正在尝试在Laravel表单中使用json_encode来捕获表单的所有输入,但是目前它会捕获一些并忽略其他表单。当我说“忽略”时,我的意思是它没有收集它们并将它们保存到数据库中,因为当我在数据库中打开它或者当我尝试在其他地方调用它并且只有一些输入存在时我可以看到它。
更具体地说,json_encode将捕获我的任何正常输入,用户直接输入值的输入,以及我的“其他”输入,这些输入是通过按下按钮通过JS添加的输入。它忽略任何具有设定值的输入,选择具有值的选定选项,以及最初为空但输入值通过JS插入的输入。
任何有关我出错的建议或见解和/或如何正确捕获表单中的所有输入都将不胜感激!谢谢!
表单(或视图)摘要:
json_encode输入的种类示例: 正常输入:
{{ Form::label('estimate_name', 'Estimate Name:')}}
{{ Form::text('estimate_name') }}
“其他”输入:
<input name="description_1" class="description" placeholder="Other" />
<input name="cost_1" class="cost"/></td>
<input name="quantity_1" class="quantity" /></td>
<input name="amount"/></td>
这是一个输入它忽略的例子,其中“foo_a”和“bar_b”通过JS动作填充:
<input id="takeOut_C" value="2.50" class="take out"></input>
<input id="foo_a" class="standard"/>
<input id="bar_b" class="total"/>
这是我在控制器中使用json_encode的地方:
$estimate_serialized = json_encode(Input::except('_token', 'submit'));
$estimate = Estimate::create('estimate_serialized'=> $estimate_serialized,));
再次感谢您的帮助或建议!非常感谢!!!!!
答案 0 :(得分:2)
您忘记在name
中添加HTML
个属性。如果您没有name
个属性,则数据不会通过您的POSTed
获得HTTP request
。尝试添加name
属性,例如以下输入标记:
<input type="text" name="firstname">