リストを表示する検索フォームがあります。
フォームには、都市の依存選択があります (国が選択されている場合、都市の選択が表示されます)。
問題: フォームを送信すると、ページが更新されるため、都市の選択が消えます.送信を押した後にその選択を維持するにはどうすればよいですか? ajaxを使用してフォームを送信する必要がありますか?
リストを表示する検索フォームがあります。
フォームには、都市の依存選択があります (国が選択されている場合、都市の選択が表示されます)。
問題: フォームを送信すると、ページが更新されるため、都市の選択が消えます.送信を押した後にその選択を維持するにはどうすればよいですか? ajaxを使用してフォームを送信する必要がありますか?
まず、リストから値を保存する必要があります$_POST['city']
。次に、同じページにいて、同じ都市のリストを再生成する場合、次のようなコードを想定します。
foreach ($cities as $city)
{
echo "<option value='{$city}'>{$city}</option>";
}
次のように変更します。
foreach ($cities as $city)
{
echo "<option value='{$city}'";
if ($city == $_POST['city']) { echo ' selected="yes"'; }
echo ">{$city}</option>";
}
同じページについて話しているわけではない場合は、 を取得したらすぐに$_POST['city']
セッション変数に保存します。たとえば$_SESSION['city']
、上記のように使用します。これは、国などに拡張することもできます。
post
選択ボックスのまたはget
値を確認し、SELECTED
その特定の値を設定する必要があります。
<?php @$selected[$_GET['test']] = 'SELECTED'; ?>
<form>
<select name="test">
<option value="a" <?=@$selected['a']?>>1</option>
<option value="b" <?=@$selected['b']?>>2</option>
<option value="c" <?=@$selected['c']?>>3</option>
<option value="d" <?=@$selected['d']?>>4</option>
</select>
<input type="submit" />
</form>
のようなチェックをしif($_POST["county"]!=""){"load your cities drop down. and city drop down will be filtered by county drop down."}
ます。それはあなたを助けると思います。
1を選択 -> 国
2 -> 国の都市を選択します。オプションは AJAX を使用して読み込まれると仮定します
$_POST
と を使用して Select 1 からオプションを選択できます。selected="selected"
に存在する場合でも、Select 2 の値を選択することはできません$_POST
。
これには AJAX フォーム送信を使用する必要があります。