在 Laravel 5.4 中,我需要选中一个复选框,如果它在之前的保存中被选中的话
In Laravel 5.4 I need to check a checkbox if it was checked on a previous save
如果我之前在我的一个数据库条目上选中它,我一辈子都无法弄清楚我需要做什么才能让我的复选框显示为选中状态。
我的数据库有一个名为语言的字段。我在其中存储了用户精通的语言。我让他们填写一个包含很多复选框的表格。这是我的表格的样子:
<label class="checkbox-inline">
<input type="checkbox" id="inlineCheckbox" name="languages[]" value="English"> English
</label><br/>
<label class="checkbox-inline">
<input type="checkbox" id="inlineCheckbox" name="languages[]" value="Finnish"> Finnish
</label><br/>
<label class="checkbox-inline">
<input type="checkbox" id="inlineCheckbox" name="languages[]" value="French"> French
</label><br/>
<label class="checkbox-inline">
<input type="checkbox" id="inlineCheckbox" name="languages[]" value="German"> German
</label><br/>
<label class="checkbox-inline">
<input type="checkbox" id="inlineCheckbox" name="languages[]" value="Italian"> Italian
</label><br/>
<label class="checkbox-inline">
<input type="checkbox" id="inlineCheckbox" name="languages[]" value="Portugese"> Portugese
</label><br/>
然后我存到数据库的时候是这样存的:
["English", "Portugese"]
我已经制作了一个编辑页面,但是如何在打开编辑表单时将英语和葡萄牙语标记为已选中?
MySQL table 列是 JSON 列。任何帮助将不胜感激
我发现 Laravel Collective Form library 对于管理表单元素中的状态非常有用。
$selected = ['English', 'Portuguese'];
{!! Form::checkbox('languages[]', 'English', in_array('English', $selected)) !!}
{!! Form::checkbox('languages[]', 'Finnish', in_array('Finnish', $selected)) !!}
{!! Form::checkbox('languages[]', 'French', in_array('French', $selected)) !!}
...
要回答您的后续问题,要使用 select
字段,您需要执行以下操作:
$options = [
// 'Value' => 'Label'
'English' => 'English',
'Finnish' => 'Finnish',
'French' => 'French',
];
$selected = 'English';
{!! Form::select('language', $options, $selected) !!}
如果我之前在我的一个数据库条目上选中它,我一辈子都无法弄清楚我需要做什么才能让我的复选框显示为选中状态。
我的数据库有一个名为语言的字段。我在其中存储了用户精通的语言。我让他们填写一个包含很多复选框的表格。这是我的表格的样子:
<label class="checkbox-inline">
<input type="checkbox" id="inlineCheckbox" name="languages[]" value="English"> English
</label><br/>
<label class="checkbox-inline">
<input type="checkbox" id="inlineCheckbox" name="languages[]" value="Finnish"> Finnish
</label><br/>
<label class="checkbox-inline">
<input type="checkbox" id="inlineCheckbox" name="languages[]" value="French"> French
</label><br/>
<label class="checkbox-inline">
<input type="checkbox" id="inlineCheckbox" name="languages[]" value="German"> German
</label><br/>
<label class="checkbox-inline">
<input type="checkbox" id="inlineCheckbox" name="languages[]" value="Italian"> Italian
</label><br/>
<label class="checkbox-inline">
<input type="checkbox" id="inlineCheckbox" name="languages[]" value="Portugese"> Portugese
</label><br/>
然后我存到数据库的时候是这样存的:
["English", "Portugese"]
我已经制作了一个编辑页面,但是如何在打开编辑表单时将英语和葡萄牙语标记为已选中?
MySQL table 列是 JSON 列。任何帮助将不胜感激
我发现 Laravel Collective Form library 对于管理表单元素中的状态非常有用。
$selected = ['English', 'Portuguese'];
{!! Form::checkbox('languages[]', 'English', in_array('English', $selected)) !!}
{!! Form::checkbox('languages[]', 'Finnish', in_array('Finnish', $selected)) !!}
{!! Form::checkbox('languages[]', 'French', in_array('French', $selected)) !!}
...
要回答您的后续问题,要使用 select
字段,您需要执行以下操作:
$options = [
// 'Value' => 'Label'
'English' => 'English',
'Finnish' => 'Finnish',
'French' => 'French',
];
$selected = 'English';
{!! Form::select('language', $options, $selected) !!}