将URL参数传递给使用JavaScript和Php选择选项

时间:2017-11-03 13:25:37

标签: javascript php

我是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

2 个答案:

答案 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。