我在一个平板电脑网站上使用PHP获取变量时遇到问题。我在主页上有一个搜索表单,它将变量传递到列表页面。然后,我在"精化搜索"对话框中有相同的搜索表单,该对话框应该使用PHP根据传递的内容预先选择适当的值。
问题是我似乎无法获得已经传递的变量(使用PHP)。例如,我在搜索中有这个字段:
<select name="propertyType" id="propertyType">
<option value="">Any Type</option>
<option value="1"<?php if(isset($_GET['propertyType']) && $_GET['propertyType']=="1") { echo ' selected'; } ?>>Houses</option>
<option value="2"<?php if(isset($_GET['propertyType']) && $_GET['propertyType']=="2") { echo ' selected'; } ?>>Flats/Apartments</option>
<option value="3"<?php if(isset($_GET['propertyType']) && $_GET['propertyType']=="3") { echo ' selected'; } ?>>Bungalows</option>
<option value="4"<?php if(isset($_GET['propertyType']) && $_GET['propertyType']=="4") { echo ' selected'; } ?>>Other</option>
</select>
但是,当我传递这些值中的任何一个时,我的代码都不会拾取它们并回显相关的"selected"。
平板电脑网站可以在这里找到:http://muskermcintyre.co.uk/tablet任何帮助都将不胜感激!
谢谢。
我建议您使用以下语法:
<?php
$values = array(
0 => 'Any Type',
1 => 'Houses',
2 => 'Flats/Apartments',
3 => 'Bungalows',
4 => 'Other'
);
$current = (int) $_GET['propertyType'];
?>
<select name="propertyType" id="propertyType">
<?php
foreach ( $values as $key => $value ) {
$selected = $key == $current ? 'selected="selected"' : '';
echo "<option value='$key' $selected >$value</option>";
}
?>
</select>
我过去也遇到过类似的问题,通过使用Javascript/jQuery获取查询字符串来解决这个问题。
快速搜索给了我这个,如果你走类似的路线,它可能会对你有所帮助:
如何在JavaScript中获取查询字符串值?