用php+javascript实现二级级联菜单的制作

时间:2022-04-05 22:32:38

大体思路是这样的:为了不让先前的页面刷新,我用iframe潜入了一个二级子页面,用来读取数据库中的数据,最后把想要的数据传递给父级页面,完成数据的选择和转移。 

主要程序代码如下(部分代码有改动,但不影响功能): 
父页面reg.html: 

  1. <iframe src=”city.php” width=”300″ height=”22″ frameborder=”0″ scrolling=”no”></iframe> <input name=”city” type=”hidden” id=”city” value=”" />  


子页面city.php: 
 

  1. <script language=”javascript” type=”text/javascript”>  
  2. function goto(n){  
  3. this.location.href=”city.php?sh_id=”+n;  
  4. }  
  5. </script>  
  6.  
  7. <select name=”sh” onchange=”goto(this.value)”>  
  8. <option>请选择所在省市</option>  
  9. <?php  
  10. include_once(”db.php”);  
  11. $sql=”select * from province order by sh_id asc”;  
  12. $result=mysql_query($sql);  
  13. while($row=mysql_fetch_assoc($result)){  
  14. ?>  
  15. <option value=”<? echo $row[”sh_id”];?>” <? if($_GET[”sh_id”]==$row[”sh_id”]){echo 'selected=”selected”‘;}?>><? echo $row[”sh_name”];?></option>  
  16. <?php  
  17. }  
  18. ?>  
  19. </select>  
  20. <select name=”city” onchange=”parent.document.getElementById('city').value=this.value”>  
  21. <option>选择你所在的城市</option>  
  22. <?php  
  23. if(!emptyempty($_GET[”sh_id”])){  
  24. //echo “ok”;  
  25. $sql=”select * from city where sh_id=”.$_GET[”sh_id”].” order by city_id asc”;  
  26. $result=mysql_query($sql);  
  27. while($row=mysql_fetch_assoc($result)){  
  28. ?>  
  29. <option value=”<? echo $row[”city_name”];?>”><? echo $row[”city_name”];?></option>  
  30. <?php  
  31. }  
  32. }  
  33. ?>  
  34. </select>