选择ajax的下拉列表

时间:2012-07-27 05:16:34

标签: javascript ajax

我需要一些ajax代码才能通过下拉来执行某些功能。我有三个价值表:一个用于国家,一个用于州和城市。我有三个下拉列表来显示这些值。

首先它应该显示:

  • 选择国家/地区
  • 选择州
  • 选择城市

分别在下拉(选择)中。

当我从第一次下拉中选择联合王国时,在第二次下降时它必须显示联合王国的状态。再次当我从州下拉列表中选择一个州时,它必须在第三个下拉列表(城市)中显示该州的城市。

我想用ajax做这件事。有没有人有代码可以做到这一点?

3 个答案:

答案 0 :(得分:0)

如果您已经熟悉jQuery,可能需要检查如何通过$ .ajax()(http://api.jquery.com/jQuery.ajax/)发送ajax请求。您可以添加用于更新状态和城市列表的代码选项并通过将onchange事件绑定到州和国家/地区下拉列表来触发发送ajax调用。您可以使用.bind()(http://api.jquery.com/bind/)来执行此操作。

答案 1 :(得分:0)

答案 2 :(得分:0)

我做了你需要的事 Go Here

选择类型,位置。我做了它,如果你需要相同我会发布我的代码你可以修改它

<强>更新 我是gona复制上面网站的代码,我让你修改它。我将粘贴“类型”下拉代码你可以比其他人做的。 更重要的是它是一个非常古老的项目,所以我通过Javascript而不是jQuery希望它会激怒你。 :(

<td>Type</td>
<td>
      <select  id="type" onChange="propertyType(this.value)" name="type">
                            <option value="">All</option>
                            <option value="homes">Homes</option>
                            <option value="plots">Plots</option>
                            <option value="commercial">Commercial</option>
      </select>
</td>

这是js of propertyType

function propertyType(str){
  if(str=='' || str=='plots'){
    document.getElementById("type_h").innerHTML=""; 
    document.getElementById("bed").innerHTML="";    
    }   
    else if(str=='commercial'){
    document.getElementById("bed").innerHTML="";    
          }
 else{
  document.getElementById("type_h").innerHTML="<img src='<?php echo $serverimageurl?>ajax-loader-small.gif' />";
    if(window.XMLHttpRequest){
    xmlhttp=new XMLHttpRequest();
 }
 else
{
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
    xmlhttp.onreadystatechange=function()
   {
    if(xmlhttp.readyState==4 && xmlhttp.status==200)
    {
        document.getElementById("type_h").innerHTML=xmlhttp.responseText;
    }
   }
   xmlhttp.open("GET","ajax/propertytype.php?s="+str,true);
   xmlhttp.send();
   }
 }

这是propertytype.php

<?php
  $s=$_GET["s"];
  if($s=="homes"){
   ?>


 <select onchange="ajax_bed(this.value)" name="subtype" id="subtype" >
  <option value="">Type Of Houses</option>
  <option value="houses">Houses</option>
  <option value="flats">Flats</option>
  <option value="farmhouses">Farm Houses</option>
</select>

<?php
}
 if($s=="plots")
{
?>


 <?php
  }
  if($s=="commercial")
  {
  ?>
  <select name="subtype" id="subtype" >
   <option value="offices">Offices</option>
   <option value="shops">Shops</option>
   <option value="warehouses">Warehouses</option>
   <option value="factories">Factories</option>
   <option value="building">Buildings</option>
   <option value="other">Other</option>
  </select>
   <?php
  }
?>

这是用于选择卧室数量的ajax功能

function ajax_bed(str){
  document.getElementById("bed").innerHTML="<img src='<?php echo $serverimageurl?>ajax-loader-small.gif' />";
  if(window.XMLHttpRequest){
    xmlhttp=new XMLHttpRequest();
   }
  else
    {
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
    xmlhttp.onreadystatechange=function()
   {
    if(xmlhttp.readyState==4 && xmlhttp.status==200)
    {
        document.getElementById("bed").innerHTML=xmlhttp.responseText;
    }
   }
   xmlhttp.open("GET","ajax/bedroomsselection.php?t="+str,true);
   xmlhttp.send();
 }

这是bedroomselection.php

<?php
$t=$_GET["t"];
if($t=="houses"||$t=="flats"||$t=="farmhouses")
{
?>
 <select id="bed" name="bed">
   <option>None</option>
   <option>Single Bed</option>
   <option>Double Bed</option>
   <option>three Bed</option>
   <option>Four Bed</option>
   <option>Five Bed</option>
   <option>Six Bed</option>
   <option>Seven Bed</option>
   <option>Eight Bed</option>
   <option>Ten Bed</option>
   <option>More Than Ten Bed</option>
</select>


 <?php
 }
?>

我希望你现在有了自己编写代码的时间 干杯