2014-05-19 39 views
-2

我试图在Laravel窗体中使用json_encode来捕获表单的所有输入,但目前它会捕获一些并忽略其他。当我说“忽略”时,我的意思是它不会收集它们并将它们保存到数据库,就像我在数据库中打开它时看到的那样,或者当我尝试将它称为其他位置时,只有一些输入在那里。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,)); 

再次任何帮助或建议,谢谢!非常感谢!!!!!

回答

2

你忘了把name属性放入你的HTML。当您没有name属性时,数据不会通过您的HTTP request获得POSTed。尝试加入name属性,如下面的输入标签:

<input type="text" name="firstname"> 
+0

谢谢你,你完美地回答了我的问题。以后我会记住这一点。 – mario

相关问题