我是JavaScript的新手,需要一些帮助。
我的导航菜单中有一个搜索表单。
这是表格的代码php + html。
<form action="search.php" name="form-name" method="GET" enctype="multipart/form-data">
<div class="row">
<div class="col-lg-2 col-md-12 col-sm-12 search">
<label>Destination</label>
<select required name="country" id="destination" onChange="getCity(this.value);">
<option value="">Any destination</option>
<?php $query = "SELECT * FROM countries";
$select_region_query = query($con, $query);
while ($row = fetch($select_region_query)) {
$region_id = $row['country_id'];
$region_name = $row['country_name'];
echo "<option value='".str_replace("&", "and",$full_region)."'>$full_region</option>";
}
?>
</select>
</div>
<div class="col-lg-2 col-md-12 col-sm-12 search ">
<label>City</label>
<select name="city" id="city" onChange="get_dropdown_ajax(this.value);">
<option value="">Any Cruise Line</option>
<?php $query = "SELECT * FROM cities";
$select_city_query = query($con, $query);
while ($row = fetch($select_city_query)) {
$city_id = $row['city_id'];
$city_name = $row['city_name'];
$city_name_value = str_replace("&"," and ",$row['city_name']);
echo "<option value='$city_name_value'>$city_name</option>";
}
?>
</select>
</div>
<div class="input-group col-lg-4 col-md-12 col-sm-12 search">
<label>Dates</label>
<select name="date_1" id="date_1">
<option value="">Any Day</option>
<?php
for($i=0;$i<31;$i++){
$i = str_pad($i,2,"0",STR_PAD_LEFT);
echo "<option value='$i'>$i</option>";
}
?>
</select>
<select name="date" id="date">
<option value="">Any Month</option>
<?php
for ($i = 0; $i <= 36; $i++) {
$time = strtotime(sprintf('+%d months', $i));
$value = date('Y-m', $time);
$label = date('F-Y', $time);
$label = str_replace("-", " ", $label);
echo "<option value='$label'>$label</option>";
}
?>
</select>
<input type="hidden" id="datepicker">
</div>
<div>
<button type="submit" name="search" class="search_button_nav btn btn-info">
<span class="glyphicon glyphicon-search"></span></button>
</div>
</div>
</form>
我需要实现的是当用户进行搜索以获取这些URL参数并使用这些参数根据他们的选择更改我的选择选项。
例如,如果他们在搜索页面上搜索国家/地区,我会在国家/地区的下拉列表中显示英国而不是任意目的地。
我尝试用php $_GET
做到这一点,但我不确定是个好主意,因为我的国家名单真的很大,我可以为每个国家if(issets($_GET)=='United Kingdom)'
创建等等。
是否可以使用javascript完成某些内容而无需像我尝试使用php一样检查网址的查询?
我寻求解决方案,我发现其他帖子(window.location);
可能会帮助我。
我尝试console.log(window.location)
我可以看到参数,但是如何正确拆分它们并与php一起使用?
任何反馈都会有所帮助。
P.S我的网址看起来像这样:nameofmysite /search.php?country=+United+Kingdom&chk=1&city_name=%25date_1=05&date=July+2018
答案 0 :(得分:1)
我不确定我是否理解您的问题如果您只想将dopdown-item设置为用户正在搜索的城市,使用$ _GET并不是一个坏主意。您只需要检查是否给出了参数,然后就可以在PHP中使用它了。
if(isset($_GET['search'])) {
echo "<option value='".$_GET['search']."'>".$_GET['search']."</option>";
} else {
echo "<option value=''>Any destination</option>";
}
答案 1 :(得分:0)
我认为您正在尝试混合使用参数。
发送请求后,服务器将处理该请求并解释服务器中的PHP页面,然后再将其发送到客户端(浏览器)。如果您需要检查一个参数,那么您可以使用全局变量$_GET
来获取它并做任何您想做的事情并方便地构建您的页面。
一旦构建了页面,它就会被发送到客户端,而它会解释它并且您的浏览器会呈现它。然后,您可以使用window.location
获取网址,并使用split
方法或正则表达式方便地解析它,从而获得您想要的内容。
但是页面已经呈现,你可以做的就是操纵页面的DOM。