【问题标题】:Adding require old value for checkboxes为复选框添加需要旧值
【发布时间】:2018-01-21 03:08:17
【问题描述】:

我有多个通过验证的复选框.. 所以我需要选中的复选框保留在那里..

这是其中的一些

                   <div class="col-sm-3 col-xs-6 padding-4-tb">
                        <input type="checkbox" name="skills[]" value="PHP"> PHP
                    </div>
                    <div class="col-sm-3 col-xs-6 padding-4-tb">
                        <input type="checkbox" name="skills[]" value="Python"> Python
                    </div>
                    <div class="col-sm-3 col-xs-6 padding-4-tb">
                        <input type="checkbox" name="skills[]" value="Ruby"> Ruby
                    </div>
                    <div class="col-sm-3 col-xs-6 padding-4-tb">
                        <input type="checkbox" name="skills[]" value="Rails"> Rails
                    </div>

您可以看到该值不包含数字.. 那我该怎么做呢??

【问题讨论】:

  • 留在哪里?你的问题不清楚。
  • 您是说如果在表单提交中出现用户错误,您希望表单在使用之前选择和输入的用户信息验证失败后重新出现?
  • 在表单中保持选中状态
  • @justin 是的,这就是我的意思

标签: php laravel validation blade


【解决方案1】:

您的问题并不完全清楚,但我假设您正在提交一个表单,然后呈现带有验证错误的表单,并且您不想丢失用户的选择。如果你只是在同一个文件中使用老式的 PHP 和 HTML,你会做这样的事情:

<div class="col-sm-3 col-xs-6 padding-4-tb">
    <input type="checkbox" name="skills[]" value="PHP"<?php if(in_array('PHP', $skills))?> checked<?php } ?>> PHP
</div>
<div class="col-sm-3 col-xs-6 padding-4-tb">
    <input type="checkbox" name="skills[]" value="Python"<?php if(in_array('Python', $skills))?> checked<?php } ?>> Python
</div>
<div class="col-sm-3 col-xs-6 padding-4-tb">
    <input type="checkbox" name="skills[]" value="Ruby"<?php if(in_array('Ruby', $skills))?> checked<?php } ?>> Ruby
</div>
<div class="col-sm-3 col-xs-6 padding-4-tb">
    <input type="checkbox" name="skills[]" value="Rails"<?php if(in_array('Rails', $skills))?> checked<?php } ?>> Rails
</div>

网络是您需要将“已选中”属性添加到每个先前选中的复选框。您可以通过检查提交时发送到服务器的技能值数组中的值是否存在来确定每个框是否被选中。

【讨论】:

  • 使用ternary operator 而不是 inline-if 如果你只是要回显一个短字符串。 &lt;?= in_array('Rails', $skills) ? 'checked' : '' ?&gt;
  • 有些人认为黄瓜腌制更好吃。如果您要展示一个概念,那么清晰比简洁更可取。
  • 我通常将逻辑从 html 中分离出来,这样会以昂贵的附加变量提供额外的清晰度。例如,$isPythonChecked 将是 = '' 或 = ' checked',具体取决于该值是否在 $skills 数组中,该数组由 php 的其余部分确定,而不是混合到表单中。
  • @Justin 这是个好主意。我总是使用像 Smarty 或 Twig 这样的模板引擎来处理关注点分离并将这类事情抽象出来。
  • 嗯,你的回答或多或少是我要说的,所以我赞成... 可能会添加一两句话来说明 checked 只是为了改善 php 与 php 之间的区别。 html。也就是说,这里的游戏计划是查看该值是否存在(是否被选中?),如果存在,则将html属性checked添加到相应的input标签中。
猜你喜欢
  • 2019-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-29
  • 2016-06-28
  • 1970-01-01
  • 2014-02-21
  • 1970-01-01
相关资源
最近更新 更多