2012-03-03 28 views
2

我有一種情況,我想從單個複選框將兩個值發佈到搜索查詢字符串數組中。由於設計原因,我不能只添加另一個複選框。 有問題的複選框看起來像這樣:在單個複選框中發佈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 
+0

隱藏的輸入字段,也許?或者你正在提交的表單的其他參數? – Pankucins 2012-03-03 22:01:22

+0

你有權訪問處理表單輸入的實際PHP代碼嗎? – 2012-03-03 22:03:05

+0

@Pankucins我嘗試了一個隱藏的領域,但似乎已經使條件語句失敗。我嘗試使用if(isset($ _ POST ['choice_c']))然後回顯隱藏的複選框,但它沒有發佈。 – Mick 2012-03-03 22:13:16

回答

0

一般來說這是不可能送一個值作爲兩個值。我能想象

一種方式是重新配置的arg_separator.input的INI設置:

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操作之初,除去三---名字。

+0

謝謝!我用第二個想法與jQuery交換,它運作良好。事實上,我意識到我不需要分配位置,只需將其留給wpp_search [property_type] [],它就可以工作。 – Mick 2012-03-03 22:25:04

1

你可以用例如「|」來分隔數值,像這樣value="value1|value2"。然後,您可以使用函數explode:$p = explode("|", $value);,您可以獲得2個值。