做了一个~~不是很完美~~哎~~~而且只能在IE里运行~~
发出来,大家可以看看,继续完成这个~~
其实这个主要是依靠JS之类的客户端脚本..跟PHP没多大关系的~~<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="gb2312">
<head>
<title>tested by SurfChen @ http://yubeinet.com</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta http-equiv="Content-Language" content="gb2312" />
<script type="text/javascript">
<!--
function changeData(letter)
{
var xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
xmlhttp.onReadyStateChange = doHttpReadyStateChange;
  xmlhttp.open("POST", "./test.php", true);
 xmlhttp.send(letter); function doHttpReadyStateChange() {
     if (xmlhttp.readyState == 4) document.write(xmlhttp.responseTEXT);
 }}
//-->
</script>
</head>
<body>
<form method="post" action="first">
<select name="sel" onChange="changeData(this.value)">
<option selected="selected">choose</option>
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
<option value="d">d</option>
</select>
</form>
<?php
if ($HTTP_RAW_POST_DATA)
{
$form=<<<FORM
<form method="post" action="second">
<select name="$HTTP_RAW_POST_DATA">
<option value="$HTTP_RAW_POST_DATA">$HTTP_RAW_POST_DATA</option>
</select>
</form>
FORM;
echo $form;
}
?>
</body>
</html>

解决方案 »

  1.   

    谢谢surfchen(冲浪)大哥一直对我的帮助,可是跟数据库的连接是怎么体现的?我怎么没看见,不用
    “$conn      = @mysql_pconnect(xxx,xxx,xxx) or die("连接数据库失败"); 
    @mysql_select_db(table1,$conn) or die("连接数据库失败");
    $sqlstrs="select * from table1 where name like 'a%'";
    $results=mysql_query($sqlstrs);
    ”什么的?
      

  2.   

    if ($HTTP_RAW_POST_DATA)
    {
    $form=<<<FORM
    <form method="post" action="second">
    <select name="$HTTP_RAW_POST_DATA">
    <option value="$HTTP_RAW_POST_DATA">$HTTP_RAW_POST_DATA</option>
    </select>
    </form>
    FORM;
    echo $form;
    }数据库操作在那里~~我用其他变量代替了数据库操作结果~~~
    if ($HTTP_RAW_POST_DATA)
    {
    //数据库操作,并输出一个相关的select
    }
      

  3.   

    出错,提示“automation服务器不能创建"
      

  4.   

    var xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
    这一行出错,automation服务器不能创建对象
      

  5.   

    奇怪了~~你是怎么处理那些代码的???
    那段xmlhttp是JS代码,本地运行的
      

  6.   

    xml我不太熟悉。搞完这个是要去学学了,我已经郁闷了很久,想要靠我现在搞的这个项目翻身,但是能力确实有限,又找不到人帮忙,只有surfchen(冲浪)大哥还那么耐心。我的程序:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="gb2312">
    <head>
    <title>tested by SurfChen @ http://yubeinet.com</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <meta http-equiv="Content-Language" content="gb2312" />
    <script type="text/javascript">
    <!--
    function changeData(letter)
    {
    var xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
    xmlhttp.onReadyStateChange = doHttpReadyStateChange;
      xmlhttp.open("POST", "./test.php", true);
     xmlhttp.send(letter); function doHttpReadyStateChange() {
         if (xmlhttp.readyState == 4) document.write(xmlhttp.responseTEXT);
     }}
    //-->
    </script>
    </head>
    <body>
    <form method="post" action="first">
    <select name="sel" onChange="changeData(this.value)">
    <option selected="selected">choose</option>
    <option value="a">a</option>
    <option value="b">b</option>
    <option value="c">c</option>
    <option value="d">d</option>
    </select>
    </form>
    <?php
    if ($HTTP_RAW_POST_DATA)
    {
    $host        = "localhost";                            
    $mysqluser   = "root";                                  
    $mysqlpass   = "zyyhero";                          
    $dbname      = "ceshi"; 
    $conn= @mysql_pconnect($host,$mysqluser,$mysqlpass) or die("连接数据库失败"); //连接数据库
    @mysql_select_db($dbname,$conn) or die("连接数据库失败");//选择数据库ceshi
    $sqlstr="select name from table1 where name like '$HTTP_RAW_POST_DATA%'";//查询表table1字段name
    $result=mysql_query($sqlstr);
    echo"<form method=\"post\" action=\"second\">
    <select name=\"$HTTP_RAW_POST_DATA\">";
    while ($crr=mysql_fetch_row($result2)){
    echo"
     <option value=\"$crr[2]\">$crr[1]</option>";}
    echo" </select>
    </td>
    </form>";
    FORM;
    echo $form;
    }
    echo"
    </body>
    </html>";
    ?>
      

  7.   

    xmlhttp.open("POST", "./test.php", true);
    test.php是哪个文件?
      

  8.   

    提交到本身的~~~
    test.php就是这段代码所在的文件~~
      

  9.   

    我数据库的名字是ceshi,表是table1,字段是name
    下面要怎么写????大哥哥
    if ($HTTP_RAW_POST_DATA)
    {
    //数据库操作,并输出一个相关的select
    }
      

  10.   

    我数据库的名字是ceshi,表是table1,字段是name
    下面要怎么写????大哥哥
    if ($HTTP_RAW_POST_DATA)
    {
    //数据库操作,并输出一个相关的select
    }
    ===============================
    我汗~~~~~
    if ($HTTP_RAW_POST_DATA)
    {
    $conn = @mysql_pconnect(xxx,xxx,xxx) or die("连接数据库失败");
    @mysql_select_db(ceshi,$conn) or die("连接数据库失败");
    $query="select name from table1";
    $result=mysql_query($query);
    echo "<select name=\"sel\">";
    while ($row=mysql_fetch_array($result))
    {
       echo "<option value=\"{$row['name']}\">{$row['name']}</option>";
    }
    echo "</select>";
    }
      

  11.   

    真的很汗颜,要大哥手把手教,不过我改了以后还是出现错误:
    行:11
    字符:2
    错误:automation服务器不能创建对象
    代码:0
    url:http://192.168.1.8/6/test.php
    我的代码是:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="gb2312">
    <head>
    <title>tested by SurfChen @ http://yubeinet.com</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <meta http-equiv="Content-Language" content="gb2312" />
    <script type="text/javascript">
    <!--
    function changeData(letter)
    {
    var xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
    xmlhttp.onReadyStateChange = doHttpReadyStateChange;
      xmlhttp.open("POST", "./test.php", true);
     xmlhttp.send(letter); function doHttpReadyStateChange() {
         if (xmlhttp.readyState == 4) document.write(xmlhttp.responseTEXT);
     }}
    //-->
    </script>
    </head>
    <body>
    <form method="post" action="first">
    <select name="sel" onChange="changeData(this.value)">
    <option selected="selected">choose</option>
    <option value="a">a</option>
    <option value="b">b</option>
    <option value="c">c</option>
    <option value="d">d</option>
    </select>
    </form>
    <?
    if ($HTTP_RAW_POST_DATA)
    {
    $conn = @mysql_pconnect(localhost,root,zyyhero) or die("连接数据库失败");
    @mysql_select_db(ceshi,$conn) or die("连接数据库失败");
    $query="select name from table1 ";
    $result=mysql_query($query);
    echo "<select name=\"sel\">";
    while ($row=mysql_fetch_array($result))
    {
       echo "<option value=\"{$row['name']}\">{$row['name']}</option>";
    }
    echo "</select>";
    }
    ?>
    </body>
    </html>
      

  12.   

    Msxml2.XMLHTTP改成Microsoft.XMLHTTP看看~~
      

  13.   

    吃还可以,喝PD就免了~~~中学生守则里写有不得喝酒,赌博的
    而中华人民共和国的法律里规定P是违法行为.我比较喜欢发Email:surfchen[at]yubeinet.com
      

  14.   

    好的,我改成Microsoft.XMLHTTP是可以,要ie5.0+才能执行,查资料,xml是要ie5.0+才能支持。
    还有,我每次选择的时候都增加2个下拉菜单。我想一直就只有2个下拉菜单,要怎么改?
      

  15.   

    我放在http://zyyhero.vicp.net/6/test.php上,帮忙看看
      

  16.   

    这个可以完成满足你的要求:
    <!-- 这个JS负责执行函数 GETDATAW 从数据“推 送”页得到的JS代码,
    功能 是将新产生的下拉框插入到对应的DIV中,以产生新的选 择列表-->
    <script language="JavaScript" id="getareadata"></script>
    <!-- 这个JS负责以不同的参数向数据“推送”页请求生成新的下拉列表框 -->
    <script language="javascript">
    <!--
      function getdataw(id,obj)
        {
      if (obj !="f_qu")
        {
        phpfilename="getareadata.php?id="+id+"&obj="+obj;
        document.getElementById("getareadata").src=phpfilename;
        }
      document.frmfarea.f_areadata.value=id;
      document.frmtj.f_tjid.value=id;
     }
     //-->
    </script>
    <form action="index.php?action=admin_area&act=<? if($_GET[act]=='addd') echo 'tj'; else echo 'xslb';?>" method="post" name="frmfarea">
      <table width="400" border="0" align="center" cellpadding="0" cellspacing="2">
        <tr>
          <td colspan="2" bgcolor="#FFF6E9">请选择地区:</td>
        </tr>
        <tr>
          <td width="72" rowspan="3" bgcolor="#FFF6E9"><div align="center"></div></td>
          <td width="322" bgcolor="#FFF6E9">
       <select name="f_sheng" id="f_sheng" onChange="javascript:getdataw(this.value,this.name);">
            <option value="-1" selected>==请选择省==</option>
         <?php
         $sqlaa="select * from sm_area where aa_upid=0 and aa_uptid=0 order by aa_name";
         $resultaa=@odbc_do($db,$sqlaa);
         while ($rstaa=@odbc_fetch_array($resultaa))
           {
        echo "<option value=\"$rstaa[aa_id]\">$rstaa[aa_name]</option>";
        }
         ?>
          </select></td>
        </tr>
        <tr bgcolor="#FFF6E9">
          <td>   <div id="showshi">
          <select name="f_shi" id="f_shi" onChange="javascript:getdataw(this.value,this.name);">
            <option value="-1" selected>==请选择市==</option>
          </select></div></td>
        </tr>
        <tr bgcolor="#FFF6E9">
          <td><div id="showqu">
          <select name="f_qu" id="f_qu" onChange="javascript:getdataw(this.value,this.name);">
            <option value="-1" selected>==请选择县/区==</option>
          </select></div>
          <input name="f_areadata" type="hidden" id="f_areadata">
          </td>
        </tr>
        <tr align="center" bgcolor="#FFF6E9">
          <td colspan="2"><input type="submit" name="Submit32" value="显示列表"></td>
        </tr>
      </table>
    </form>--------------------下面是数据“推送”页 getareadata.php 代码
    <?php
    header("Cache-Control: no-store, no-cache,must-revalidate");//必须
    require("config/database.php");
    if ($_GET[obj]=="f_sheng")
      {//如果是省框变动则生成对应此省的市的下拉框代码
        $tdiv="showshi";
     $output="<select name='f_shi' onChange='javascript:getdataw(this.value,this.name);'><option value='-1' selected>==请选择市==</option>";
        $sql="select aa_id,aa_name from sm_area where aa_upid=$_GET[id]";
      }
    else
      {//如果是市框变动则生成对应此市的区的下拉框代码
        $tdiv="showqu";
     $output="<select name='f_qu' onChange='javascript:getdataw(this.value,this.name);'><option value='-1' selected>==请选择县/区==</option>";
        $sql="select aa_id,aa_name from sm_area where aa_upid=$_GET[id]";
      }
    $result=@odbc_do($db,$sql);
    while ($rst=@odbc_fetch_array($result))
    {//生成新的OPTION列表
      $output.="<option value='$rst[aa_id]'>$rst[aa_name]</option>";
    }
    $output.="</select>";
    echo "document.getElementById(\"$tdiv\").innerHTML=\"$output\";";
    //本页生成的JS代码由 id="getareadata" 的JS执行。最后一行即是将生成的SELECT框代码插入到对应的DIV标签中。
    ?>
      

  17.   

    楼上的思路不错~~不过没试过,不知道是否可行~~~XMLHTTP的我暂时也没办法解决那个产生过多SELECT的问题...
    学习紧张.,也没时间考虑。..这不,现在又要去上晚自修了..
      

  18.   

    1.先全部取出来,生成JAVASCRIPT数组,用JAVASCRIPT实现
    2.使用隐含的iframe,类似论坛跟贴的那种效果,就象CSDN这个论坛左面菜单一样
      

  19.   

    先全部取出来,生成JAVASCRIPT数组,用JAVASCRIPT实现