2

1 つのチェックボックスから検索クエリ文字列配列に 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 

しかし、私が必要としているのは、その 1 つのチェックに 2 つの値を結びつけることなので、最終的には次のようになります。

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

簡単な解決策はありますか?すでにその配列にフィードしているチェックボックスは他に 1 つしかないので、これを強制的に

{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

通常、1 つの値を 2 つの値として送信することはできません。

私が想像できる 1 つの方法は、次の ini 設定を再構成することですarg_separator.input

arg_separator.input = ";&"

これにより、;値を分離するためにも使用できるようになり、その値ごとに 2 番目の値を挿入できるようになります。

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

他の形式の値で値を使用する場合、;当然、互換性を持たせるためにそれらを適切にエスケープする必要があります。

もう 1 つの方法は、その値を持つ隠しフィールドを挿入し、チェックボックスがオンになっている場合は、その名前を正しい名前に変更することです。チェックを外すと、名前を正しくない名前に戻します。

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

選択した JavaScript 参照を取得し、他のチェックボックスをクリックして必要な DOM 操作を実行し---、名前の先頭にある 3 つを削除します。

于 2012-03-03T22:07:23.113 に答える