在Laravel 5.1中,不能发布复选框的值

时间:2015-11-01 19:42:22

标签: javascript php laravel-5.1

我在表单中有2个复选框,我无法发布它们的值。 我已经尝试过了:

<div class="form-group col-md-4">
                <label class="col-md-6" for="invoiced">
                    <input type="checkbox" id="invoiced" value="false" name="project[invoiced]"> 
                     Invoiced </label>
                <label class="col-md-6" for="tobeinvoiced">
                    <input type="checkbox" id="tobeinvoiced" value="true" name="project[tobeinvoiced]" checked> 
                    To be Invoiced </label>
            </div>

使用此脚本更改2个复选框的值为true或false:

<script type="text/javascript">
            $('#tobeinvoiced').change(function(){
                cb = $(this);
                cb.val(cb.prop('checked'));
            });
            $('#invoiced').change(function(){
                cb = $(this);
                cb.val(cb.prop('checked'));
            });
            </script>

但是当我提交时,传递的值被设置为null。

2 个答案:

答案 0 :(得分:0)

试试这个

$project = $request->input('project');
$tobeinvoiced = $project['tobeinvoiced'];

基本上你使用的命名约定使它成为一个数组,你不能直接在laravel中的请求输入中调用数组

希望这有帮助。

答案 1 :(得分:0)

我找到了问题的解决方案,这是链接:Solution

我的代码变成了:

<label class="col-md-6" for="invoiced">
   <input type="checkbox" key="invoiced"/>
   <input type="hidden" id="invoiced" value="0" name="project[invoiced]"> 
   Invoiced </label>
<label class="col-md-6" for="tobeinvoiced">
   <input type="checkbox" key="tobeinvoiced" checked/>
   <input type="hidden" id="tobeinvoiced" value="1" name="project[tobeinvoiced]"> 
   To be Invoiced </label>

使用此脚本:

 $(document).ready(function () {
                $('[key]').change(function () {
                    var key = $(this).attr('key');
                    $($('[name="project[' + key + ']"]')).val($(this).is(':checked') ? 'true' : 'false');
                });
            });