http://blog.163.com/w_forest/blog/static/324360922007112451911965/,仿照的是这个程序,请大家帮忙看看代码,不知道为什么mysql移植到mssql里面就不能用了。

解决方案 »

  1.   

    如果会用ajax的话,实现起来就比较简单了看你上面的代码,实现方法应该是没问题的。可以慢慢调试下,比如说$row是否有值啊,在ChangeSelect()中多设置几个alert,慢慢就会找出问题了。
      

  2.   

    <? include("dbconf.inc"); ?> 
    <?php 
    $pro = $_POST['pre']; 
    $cit = $_POST['city']; 
    echo $pro; 
    echo $cit; 
    $str = "select * from country where provs != 0"; 
    $result = mssql_query($str); 
    $rownum = mssql_num_rows($result); 
    $row = mssql_fetch_array($result); 
    ?> 
    <script language="JavaScript"> 
    var _option = new Array(); 

    <? 
    for($i=0;$i <$rownum;$i++) 
    {   
       echo "_option[".$i."] = new Array('".$row["citis"]."',".$row["id"].",".$row["provs"].")\n";  
       $row = mssql_fetch_array($result); 

    ?> 到这一段是有值的,数列是可以取出来的。
    下面那段
    ====
    $rs_result = mssql_query("select * from country where provs = 0"); 
    ====
    这个取出来是空值,因为我没有provs为0的记录,然而我把这个provs改为1(我暂时拿1代替一个省的名字),可以取出来的是这个“1”省里面市的值,看代码原来就是这样设定的。而city这个下拉框则不能对这个省进行级联,现在脑袋死锁中,大家帮忙解一下,感觉这个程序并不是太难就不知道是哪个地方错了。
      

  3.   

    ChangeSelect里面的调试了吗?到那一步了?
      

  4.   

    ChangeSelect里面的调试了吗?到那一步了? 
    ===
    有点蒙,这个怎么调。
      

  5.   

    这是调通的程序,加了个字段sid作为省的标示,country表共有4个字段,id,sid,provs,citis。
    弄好了,谢谢leec1981 ,这段程序还比较简单。希望对大家有用。^_^<? include("dbconf.inc"); ?> //连接数据库用
    <?php 
    $pro = $_POST['pre']; 
    $cit = $_POST['city']; 
    echo $pro; 
    echo $cit; 
    $str = "select * from country where sid != 0"; 
    $result = mssql_query($str); 
    $rownum = mssql_num_rows($result); 
    $row = mssql_fetch_array($result); 
    ?> 
    <script language="JavaScript"> 
    var _option = new Array(); //建新的一维数组
    <? 
    for($i=0;$i <$rownum;$i++) 
    {   
       echo "_option[".$i."] = new Array('".$row["citis"]."',".$row["id"].",".$row["sid"].")\n";  
       $row = mssql_fetch_array($result); //建包括省id和市id的二维数组

    ?> 
    function ChangeSelect(SelfId) //从pre多选框取省id的值

            document.form_category.city.length = 0;   
            document.form_category.city.options[0] = new Option('==请选择市==','0');  
            for(i=0;i  < _option.length;i++) 
         {  
            if(_option[i][2] == SelfId) 
            { 
            document.form_category.city.options[document.form_category.city.length] = new Option(_option[i][0],_option[i][1]);  //转化成对应省的市列表
            }        
         } 

    </script> 
    <form name="form_category" id="form_category" method="post" action="">           
             <select name="pre" id="pre" onChange="ChangeSelect(this.value);"> 
              <option>==请选省/市== </option>                   
             <?php 
             $rs_result = mssql_query("select distinct sid,provs from country "); 
             $row_num = mssql_num_rows($rs_result); 
             $rs_row = mssql_fetch_array($rs_result); 
             for($m=1;$m <=$row_num;$m++){ 
             ?> 
               <option value=" <?=$rs_row["sid"]?>"> <?=$rs_row["provs"]?> </option> 
             <?php 
              $rs_row = mssql_fetch_array($rs_result); 
             } 
             ?> 
                    </select> 
                       <select name="city" id="city">         
           <option>==请选择市== </option> 
             </select>        
             <input type="submit">                 
    </form>