php+ajax动态生成下拉菜单

php+ajax动态生成下拉菜单

效果:

如履薄冰



[复制到剪切板]
CODE:
<html>
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<
title>无标题文档</title>
<
script language="javascript">
//var ab = new Array();
var xmlHttp;

function 
createXMLHttpRequest() {
    if (
window.ActiveXObject) {
        
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    } 
    else if (
window.XMLHttpRequest) {
        
xmlHttp = new XMLHttpRequest();
    }
}
    
function 
startRequest() {
    
createXMLHttpRequest();
    
xmlHttp.onreadystatechange handleStateChange;
    
document.getElementById('select2').options.length 0;
    var 
url document.form1.select1.value;
    var 
qurl "getCities.php?countryCode="+url+"&time="+new Date().getTime();
    
xmlHttp.open("GET"qurltrue);
    
xmlHttp.send(null);
    
//setTimeout("startRequest()",2000);
}
    
function 
handleStateChange() {
    if(
xmlHttp.readyState == 4) {
        if(
xmlHttp.status == 200) {
        var 
obj document.getElementById('select2');
            eval(
xmlHttp.responseText);
            
        }
    }
}

<\/
script>
</
head>

<
body>
<
form name="form1" method="post" action="">
  <
p>
    <
select name="select1" id="select1" onChange="startRequest()">
      <
option value="0">选择</option>
      <
option value="no">1</option>
      <
option value="dk">2</option>
      <
option value="us">3</option>
    </
select>
</
p>
  <
p>
    <
select name="select2" id="select2">
    </
select>
</
p>
</
form>
</
body>
</
html> ;

如履薄冰

getCities.php

[复制到剪切板]
CODE:
<?php

if(isset($_GET['countryCode'])){
  
  switch(
$_GET['countryCode']){
    
    case 
"no":
      echo 
"obj.options[obj.options.length] = new Option('Bergen','1');\n";
      echo 
"obj.options[obj.options.length] = new Option('Haugesund','2');\n";
      echo 
"obj.options[obj.options.length] = new Option('Oslo','3');\n";
      echo 
"obj.options[obj.options.length] = new Option('Stavanger','4');\n";
      
      break;
    case 
"dk":
      
      echo 
"obj.options[obj.options.length] = new Option('Aalborg','11');\n";
      echo 
"obj.options[obj.options.length] = new Option('Copenhagen','12');\n";
      echo 
"obj.options[obj.options.length] = new Option('Odense','13');\n";
      
      break;
    case 
"us":
      
      echo 
"obj.options[obj.options.length] = new Option('Atlanta','21');\n";
      echo 
"obj.options[obj.options.length] = new Option('Chicago','22');\n";
      echo 
"obj.options[obj.options.length] = new Option('Denver','23');\n";
      echo 
"obj.options[obj.options.length] = new Option('Los Angeles','24');\n";
      echo 
"obj.options[obj.options.length] = new Option('New York','25');\n";
      echo 
"obj.options[obj.options.length] = new Option('San Fransisco','26');\n";
      echo 
"obj.options[obj.options.length] = new Option('Seattle','27');\n";
      
      break;
  }  
}
?> ;


如履薄冰

echo "obj.options[obj.options.length] = new Option('Bergen','1');\n";

这里  为什么把 'Bergen' 换成 ‘中文’  会显示错误  只显示 ‘??’   我是新手 请指教


if(isset($_GET['countryCode'])){
上面加一句
header('Content-type: text/html;charset=GBK');
就行了
毕业了。。。

如果把服务器端数据用xml输出,然后客户端再接受此xml数据,用DOM操作将节点添加到slt里面去是不是更好点,以后要有扩充也好点

二级联动,能不能制作成动态的?

谢谢,我找这个东西,找了一天了!非常感谢你

感谢楼主,ajax我正在学习中