十月CMS,如何从复选框中获取值?

时间:2018-02-01 06:41:49

标签: php laravel octobercms

我已选中复选框:

{{ form_ajax('onAjaxList') }}
 {% for soc in socs %}
  <input type="checkbox" name="Filter[soc_id]" value="{{soc.id}}" id="
 {{soc.name}}">
{% endfor %}
{{ endform() }}

我尝试从控制器获取值:

$options = post('Filter',[]);

但在$ options中我只得到最后一个复选框值,我需要完整数组复选框。怎么做?

2 个答案:

答案 0 :(得分:1)

您的输入名称应该与name="Filter[soc_id][]"代替name="Filter[soc_id]",因此请更改输入

<input type="checkbox" name="Filter[soc_id]" value="{{soc.id}}" id="
 {{soc.name}}">

到此

<input type="checkbox" name="Filter[soc_id][]" value="{{soc.id}}" id="
 {{soc.name}}">

答案 1 :(得分:0)

dealing multiple checkbox array时,您始终需要使用[]

因此,在名称之后添加data index方括号将使其成为数组,并且添加name="Filter[soc_id][0]" , name="Filter[soc_id][1]", name="Filter[soc_id][2]" ...将从 0 index

  

如果您需要更多控制权,您还可以手动传递{{ form_ajax('onAjaxList') }} {% for soc in socs %} <input type="checkbox" name="Filter[soc_id][]" value="{{soc.id}}" id=" {{soc.name}}"> {% endfor %} {{ endform() }} ,如果需要使用已保存记录的ID,现在数组键将成为您记录的ID。

在您的情况下,您的代码应如下所示

$options = post('Filter',[]);    
$query->whereIn('soc_id', $options['soc_id']);

如果您想使用过滤器,则从服务器端

你可以使用它(10月CMS,laravel)

soc_id

这将完成工作,根据if(www[15] != "false") { var seatavailablepng="Public2/images/empty-seat.png"; } else { if(yyy[15] != "false") { varseatavailablepng="Public2/images/ladies-seat.png"; } else { var seatavailablepng="Public2/images/reserved-seat.png"; } } sts += '<td align="right" id="three" name="seat[]" onclick=myfuncset("'+vvv[15]+'",'+fare[15]+') ><a href="#" id="'+vvv[15]+'"><img src='+seatavailablepng+' alt="" id='+seatestatus+'/></a></td>'; 进行过滤。

如果您有任何疑问,请发表评论。