解决方案 »

  1.   

    http://blog.csdn.net/sangliu/article/details/8674886
    http://blog.csdn.net/ykm0722/article/details/6064559
    http://www.cnblogs.com/freespider/archive/2010/08/30/1812669.html别人讲N遍,不如自己动手做一遍。
      

  2.   

    http://download.csdn.net/detail/jam00/5079966
    或者留个邮箱直接发给你
      

  3.   

    谢了,真的没有积分了。[email protected]
      

  4.   

    额,我在网上找了一个纯js的,把他放在静态页面就还用。但是放到我的项目里面就不好用了。不显示数据。用火狐调试显示还有,area.js,location.js这两个文件每个里面都声明了一个函数function showLocation(province , city , town)和function Location() 我在百度上查说$(document).ready(function() {的意思是:“页面加载成功后,页面内的所有链接在“点击”事件的时候,都加载那个函数”我的项目是在cms基础上进行二次开发,是不是和原有的js冲突了。本人js小白,求指导.....
      

  5.   

            <script language="JavaScript" src="area.js"></script>
    <script language="JavaScript" src="location.js"></script>
    <div class="main">
            <select id="loc_province" name="sheng" style="width: 80px;"></select>
            <select id="loc_city" name="shi" style="width:100px;"></select>
            <select id="loc_town" name="qu" style="width:120px;"></select>
            <input type="hidden" name="location_id" />
            </div>  这个是html页面。
    area.jsfunction showLocation(province , city , town) {

    var loc = new Location();
    var title = ['省份' , '地级市' , '市、县、区'];
    $.each(title , function(k , v) {
    title[k] = '<option value="">'+v+'</option>';
    })

    $('#loc_province').append(title[0]);
    $('#loc_city').append(title[1]);
    $('#loc_town').append(title[2]);


    $('#loc_province').change(function() {
    $('#loc_city').empty();
    $('#loc_city').append(title[1]);
    loc.fillOption('loc_city' , '0,'+$('#loc_province').val());
    $('#loc_town').empty();
    $('#loc_town').append(title[2]);
    //$('input[@name=location_id]').val($(this).val());
    })

    $('#loc_city').change(function() {
    $('#loc_town').empty();
    $('#loc_town').append(title[2]);
    loc.fillOption('loc_town' , '0,' + $('#loc_province').val() + ',' + $('#loc_city').val());
    //$('input[@name=location_id]').val($(this).val());
    })

    $('#loc_town').change(function() {
    $('input[@name=location_id]').val($(this).val());
    })

    if (province) {
    loc.fillOption('loc_province' , '0' , province);

    if (city) {
    loc.fillOption('loc_city' , '0,'+province , city);

    if (town) {
    loc.fillOption('loc_town' , '0,'+province+','+city , town);
    }
    }

    } else {
    loc.fillOption('loc_province' , '0');
    }

    }location.jsfunction Location() {
    this.items = {
    '0':{1:'北京市',22:'天津市',44:'上海市',66:'重庆市',108:'河北省',406:'山西省',622:'内蒙古',804:'辽宁省',945:'吉林省',1036:'黑龙江省',1226:'江苏省',1371:'浙江省',1500:'安徽省',1679:'福建省',1812:'江西省',1992:'山东省',2197:'河南省',2456:'湖北省',2613:'湖南省',2822:'广东省',3015:'广西',3201:'海南省',3235:'四川省',3561:'贵州省',3728:'云南省',3983:'西藏',4136:'陕西省',4334:'甘肃省',4499:'青海省',4588:'宁夏',4624:'新疆',4802:'香港',4822:'澳门',4825:'台湾省'},
    '0,1':{2:'北京市'},.............};
    }Location.prototype.find = function(id) {
    if(typeof(this.items[id]) == "undefined")
    return false;
    return this.items[id];
    }Location.prototype.fillOption = function(el_id , loc_id , selected_id) {
    var el = $('#'+el_id);

    var json = this.find(loc_id);

    if (json) {
    var index = 1;
    var selected_index = 0;
    $.each(json , function(k , v) {
    var option = '<option value="'+k+'">'+v+'</option>';
    el.append(option);

    if (k == selected_id) {
    selected_index = index;
    }

    index++;
    })
    el.attr('selectedIndex' , selected_index);
    }
    }
      

  6.   

    谁知道的发到我邮箱里面来谢啦[email protected]
      

  7.   

    http://blog.sina.com.cn/s/blog_49ea36420100t1ji.html这个例子你看看js,服务端你可以写原生php代码查询。
    有不懂的问题,再贴出来吧
      

  8.   

    http://www.helloweba.com/view-blog-188.html
    http://www.helloweba.com/demo/cityselect/这个是用js实现,效果来的快。
      

  9.   

    我用上面那个老兄邮箱发给我的代码,出现的问题是查询出来的省的数据都是“???”但是数据库编码是UTF8,我php的编码也是UTF8,不知道为啥会出现这种问题。还有就是我代码放到我的项目里,就只有省里面会有数据,但是市和区里面都查询不到数据,不知道为啥,
      

  10.   

    原生 js 代码不超过 20 行
    用 jquery 不超过 4 行,如果数据结构设计的好,一行也就可以了php 部分不算数据库连接,也就 3、4 行代码吧不至于搞得那么复杂吧?一天了。还没头绪
      

  11.   

    如果放在一个页面里可查询到数据,不过全是?放到我的项目里就只能查到省的数据.script type="text/javascript">
    //创建AJAX 引擎
    function getXmlHttpObject(){
    var XmlHttpRequest;
    if(ActiveXObject){
    //ie
    XmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP");
    }else{
    //火狐,opera
    XmlHttpRequest=new XMLHttpRequest();
    }
    return XmlHttpRequest;
    }
    var myXmlHttpRequest="";
    //根据省级信息获取城市
    function getCities(){
    myXmlHttpRequest=getXmlHttpObject();
    if(myXmlHttpRequest){
    var url="showCitiesPro.php";//post方式
    var data="type=city&province="+$('province').value; myXmlHttpRequest.open("post",url,true);//异步
    myXmlHttpRequest.setRequestHeader("content-type","application/x-www-form-urlencoded");
    //指定回调函数
    myXmlHttpRequest.onreadystatechange=chuliCity;
    //发送
    myXmlHttpRequest.send(data);
    }
    }
    function chuliCity(){
    if(myXmlHttpRequest.readyState==4){
    //status==200 才是真正的成功
    if(myXmlHttpRequest.status==200){
    //取出服务器回送的数据
    var cities=myXmlHttpRequest.responseXML.getElementsByTagName("name");
    var codes=myXmlHttpRequest.responseXML.getElementsByTagName("code"); //每次执行都将id为city的select长度清零
    $('city').length=0;
    var myOption=document.createElement("option");
    myOption.innerText="---城市---";
    $('city').appendChild(myOption);
    //遍历并取出城市
    for(var i=0;i<cities.length;i++){
    var city_name=cities[i].childNodes[0].nodeValue;
    var city_code=codes[i].childNodes[0].nodeValue;
    //创建新的元素option
    var myOption=document.createElement("option");
    myOption.value=city_code;
    //赋文本
    myOption.innerText=city_name;
    //添加到 id为city的select里
    $('city').appendChild(myOption);
    }
    }
    }
    }
    //根据市级获取县级
    function getArea(){
    myXmlHttpRequest=getXmlHttpObject();
    if(myXmlHttpRequest){
    var url="showCitiesPro.php";//post方式
    var data="type=area&city="+$('city').value; myXmlHttpRequest.open("post",url,true);//异步
    myXmlHttpRequest.setRequestHeader("content-type","application/x-www-form-urlencoded");
    //指定回调函数
    myXmlHttpRequest.onreadystatechange=chuliArea;
    //发送
    myXmlHttpRequest.send(data);
    }
    }
    function chuliArea(){
    if(myXmlHttpRequest.readyState==4){
    //status==200 才是真正的成功
    if(myXmlHttpRequest.status==200){
    //取出服务器回送的数据
    var cities=myXmlHttpRequest.responseXML.getElementsByTagName("name");
    var codes=myXmlHttpRequest.responseXML.getElementsByTagName("code"); //每次执行都将id为city的select长度清零
    $('area').length=0;
    var myOption=document.createElement("option");
    myOption.innerText="---县城---";
    $('area').appendChild(myOption);
    //遍历并取出城市
    for(var i=0;i<cities.length;i++){
    var city_name=cities[i].childNodes[0].nodeValue;
    var city_code=codes[i].childNodes[0].nodeValue;
    //创建新的元素option
    var myOption=document.createElement("option");
    myOption.value=city_code;
    //赋文本
    myOption.innerText=city_name;
    //添加到 id为area的select里
    $('area').appendChild(myOption);
    }
    }
    }
    }
    //获取对象的函数
    function $(id){
    return document.getElementById(id);
    }</script>这是html里的js代码 <td width="120">城市</td>
            <td width="300">
            <select id="province" onChange="getCities();" name="province">
    <option value="">---省---</option>
    <?php
    require_once(CP_PATH.'ext/process.php');  getProvince();
    ?>
         </select>     <select id="city" onChange="getArea();" name="city">
     <option value="">---城市---</option>
         </select>     <select id="area" name="area">
     <option value="">---县城---</option>
         </select>
            
      

  12.   

    哎,主要是js的一点都不会啊,php也是半吊子。求大神给个js代码被,网上弄的都是一放到我的项目里就不好用了。关于php的给我个思路我自己弄也可以啊。我的数据库的结构就是省市区分三个表,每个表都有一个id,一个名字。市和区各有一个父id,市的父id就是省的id,区的父id就是市的id
      

  13.   

    php 部分//连接mysql并选择库
    switch($_POST['type']) {
      case 'shi':
         $tbl = '市表';
         $where = "pid='$_POST[id]'";
         break;
      case 'xian':
         $tbl = '县表';
         $where = "pid='$_POST[id]'";
         break;
      default:
         $tbl = '省表';
         $where = "1";
    }
    $sql = "select concat('<option value=\"', id, '\">', name,  '</optipn') from $tbl where $where";
    $rs = mysql_query($sql);
    while(list($r) = mysql_fetch_row($rs)) $row[] = $r;
    echo join('', $row);
    js 部分 需加载 jquery
    $(function() {
      $('#sheng').change(function() {
         $('#shi').load(url, {type:'shi', id:$(this.val()});
      });
      $('#shi').change(function() {
         $('#xian').load(url, {type:'xian', id:$(this.val()});
      });  $('#sheng').load(url, {type:sheng'});
    });HTML部分
    <select id="sheng"><option value="">---省---</option></select>
    <select id="shi"><option value="">---市---</option></select>
    <select id="xian"><option value="">---县---</option></select>
      

  14.   

    那个加载jquery是不是在页头加一个<script type="text/javascript" src="jquery.js"></script>啊
      

  15.   

    谢了,真的没有积分了。[email protected]
    给你一个实际在线的例子吧 www.35dalu.com/info/fabu 看看里面有2个省市区 三级联动。
      

  16.   

    谢了,真的没有积分了。[email protected]啥也不说了,分都给你了
      

  17.   

    谢谢大家的指导了,但是jam00这位仁兄在QQ邮箱上不厌其烦的指导,终于让我弄出来了,所以只有把分给他了