我有一个显示列表的搜索表单。
In the form there is a dependant select for the cities (when a country is selected the select for the cities is shown).
问题:当我提交表单时,页面会刷新,因此城市的选择消失了。在推送提交后我应该怎么做才能保持该选择?我应该使用ajax 提交表单吗?
我有一个显示列表的搜索表单。
In the form there is a dependant select for the cities (when a country is selected the select for the cities is shown).
问题:当我提交表单时,页面会刷新,因此城市的选择消失了。在推送提交后我应该怎么做才能保持该选择?我应该使用ajax 提交表单吗?
您需要检查选择框的post
or值并设置该特定值: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
您可以使用和 using从 Select 1 中选择选项,selected="selected"
即使 Select 2 值存在于 中,也无法选择它们$_POST
。
您将不得不为此使用 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']
,然后像上面一样使用。这也可以扩展到国家等。