du2229 2014-11-18 21:01
浏览 20
已采纳

Laravel - 从返回的数组输入设置复选框的选中属性

I'm having a problem where I'm trying to handle a

return Redirect::to('page')->withInput();

call while using an array of checkboxes. Basically, if my validator fails, I want to return back, display some errors and repopulate inputs with their value. Here are the inputs I'm having difficulty with.

<div class="row">
  <div class="col-xs-12">
    <label class="checkbox-inline">
      <input type="checkbox" name="rms_cs[]" value="Marshall and Swift Property Valuation" {{ (Input::old("rms_cs[]") == "Marshall and Swift Property Valuation") ? "checked":"" }}> Marshall &amp; Swift Property Valuation
    </label>
  </div>
</div>
<div class="row">
  <div class="col-xs-12">
    <label class="checkbox-inline">
      <input type="checkbox" name="rms_cs[]" value="Premises Liability Survey" {{ (Input::old("rms_cs[]") == "Premises Liability Survey") ? "checked":"" }}> Premises Liability Survey
    </label>
  </div>
</div>

So, basically, I have multiple checkboxes, each with name="rms_cs[]" and value="something". How would I go about setting the checked property to checked when Input is returned?

Note: I have lots of text boxes and radio buttons that work fine, so I know that the issue doesn't lie with anything besides Input::old("rms_cs[]"). I think the issue is that rms_cs[] is an indexed array; ie rms_cs[0] = "Something" and not rms_cs["Premises Liability Survey"] = "Something"

If anyone could shed some light on this/provide a better way to handle something like this, that would be great.

  • 写回答

2条回答 默认 最新

  • duanmu2015 2014-11-19 14:20
    关注

    So, I ended up figuring this out. I changed

    name="rms_ssp[]"
    

    on each checkbox to:

    name="rms_ssp[epis]"
    name="rms_ssp[mrp]"
    

    etc, so the array was no longer indexed. Then, I made a variable out of the old input:

    <?php $rms_ssp = Input::old('rms_ssp'); ?>
    

    And added this check in each of the checkboxes:

    {{ (isset($rms_ssp['epis'])) ? "checked":"" }}
    {{ (isset($rms_ssp['mrp'])) ? "checked":"" }}
    

    And that did the trick.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?