2

我有一种情况,我想从单个复选框将两个值发布到搜索查询字符串数组。由于设计原因,我不能只添加另一个复选框。有问题的复选框如下所示:

<input name="wpp_search[property_type][]" value="rental_home" type="checkbox" id="choice_c"/>
<label for="choice_c">For Rent</label>

我现在在查询字符串中得到的是......

{url}?wpp_search[property_type][0]=rental_home 

但我需要将两个值与该检查绑定,所以我最终得到了这个:

{url}?wpp_search[property_type][0]=rental_home&wpp_search[property_type][1]=building

有什么简单的解决方案吗?只有一个其他复选框已经提供了该数组,所以我可以强制这个

{url}?wpp_search[property_type][0]=rental_home&wpp_search[property_type][2]=building
4

2 回答 2

1

您可以使用例如“|”来分隔值 像这样value="value1|value2"。然后稍后您可以使用函数 explode:$p = explode("|", $value);并获得 2 个值。

于 2012-06-08T15:58:17.923 回答
0

通常不可能将一个值作为两个值发送。

我可以想象的一种方法是您重新配置的ini设置arg_separator.input

arg_separator.input = ";&"

这也将允许您使用;分隔值,然后允许您为每个值注入第二个值:

<input name="wpp_search[property_type][0]" 
       value="rental_home;wpp_search[property_type][1]=building"
       ...
/>

如果您;在其他表单值中使用该值,您自然需要正确转义它们以使其兼容。

另一种方法是插入具有该值的隐藏字段,如果选中复选框,则将其名称更改为正确的名称。如果未选中,则将其名称更改回不正确的名称:

<input type="hidden" name="---wpp_search[property_type][1]" value="=building" />

获取您选择的 javascript 引用并在单击另一个复选框时执行所需的 DOM 操作,以删除---名称开头的三个。

于 2012-03-03T22:07:23.113 回答