我在做一个工程中,因为要计算起讫地点之间的距离,因此涉及到级联显示,在这里遇到问题,请大家指点指点!例:西安——北京       700公里
西安——上海       600公里 
西安——黑龙江     1000公里北京——西安       700公里
北京——上海       200公里
北京——汉中       1000公里上海——西安       600公里
上海——北京       200公里
上海——汉中       800公里。

。请问这个如何做数据字段和如何使用级联高效计算里程?

解决方案 »

  1.   

    不知道你是不是web程序,如果是用ajax就可以实现!!
      

  2.   

    自己UP一下!!如果问题解决我会再次加分,而且UP的朋友也给分的!!
      

  3.   

    如果   西安——北京      700公里 是固定的而不是把各个值累加的话,字段应该是:起始地,终止地,公里数;然后在程序中加以判断起始与终止地名称是否包含后读取公里数,再细化更小的路段同理,获取公里数后作任意处理都好办了。
    (LIKE 字段1=条件1 and like 字段2=条件2)or(LIKE 字段1=条件2 and like 字段2=条件1)
    有时就是把起止地名前后输出而已,而数据库中实际一条纪录即可,以上思路做个参考吧。
      

  4.   


    感谢xianfajushi的回答!西安——北京   700公里  这里的距离时固定的,不是累加!!因为要级联效果,A下拉选择框,选择西安,那么B下拉选择框就级联显示西安可以到达的地方北京、上海等,但是因为西安——北京就是北京——西安这种情况,因此级联内容就比较乱了!!
      

  5.   

    因为要级联效果,A下拉选择框,选择西安,那么B下拉选择框就级联显示西安可以到达的地方北京、上海等,但是因为西安——北京就是北京——西安这种情况,因此级联内容就比较乱了!!这种效果也容易实现,寻找符合第一个条件是西安的起始地,则得到所有从西安可达的终止地ADD到下拉控件,不知道你数据库里面字段是否这样设计的?或如果你录入的西安字段在第二个字段,则寻找终止地符合西安的纪录则得到任何地达西安的纪录Add下拉控件,都可以很灵活提取数据加载到控件中
      

  6.   

    西安——北京      700公里 //西安,北京,700,0
    西安——上海      600公里 //西安,上海,600,0
    西安——黑龙江    1000公里//西安,黑龙江,1000,0北京——西安      700公里 //西安,北京,700,1
    北京——上海      200公里 //北京,上海,200,0 //200?!u new b
    北京——汉中      1000公里//北京,汉中,1000,0上海——西安      600公里 //上海,西安,600,0
    上海——北京      200公里 //北京,上海,200,1
    上海——汉中      800公里 //上海,汉中,800,0能看懂吗?加个方向就解决了...
      

  7.   

    阿弥陀佛!
    不知道你实际运行测试过没有,做一个出来试试看,然后选择最佳的。
    如果从北京-西安存在各个路段则可以加一个声明字段作为累加用是必要的,如:北京-A,A-B,B-C,C-西安;加一个标记字段注明:北京-西安,就可以很方便按条件搜索到所需数据进行相应处理了。
      

  8.   

    具体一点:
    下拉控件1 ADD数据库所有不重名的地点,供下拉选择;
    下拉控件1返回信息用于搜寻[字段1]与[字段2]符合条件的ADD下拉控件2,因为:北京-上海,上海-北京只有一条记录,类似的
    北京-A,
    北京-B,
    北京-C,
    北京-西安,
    西安-D,
    西安-E,
    西安-F,
    都只有一条记录,
    当需要西安-北京时,取北京-西安记录加载即可;因此,如果下拉1选择北京时-西安的只会找到一个记录,怎么会乱?如果选择下拉1[西安]时,则西安-北京只有一条记录被找到。
    数据库名称 条件 [字段1 LIKE 西安]OR[字段2 LIKE 西安] 排序。则得到所以包含西安记录,
    然后,读取[字段1-起地]读取[字段2-止地]读取[字段3-公里数],
    判断IF(字段1!=“西安”){字段1 ADD 下拉控件2;ADD公里数}IF(字段2!=“西安”){字段2 ADD 下拉控件2;ADD公里数}这样就获得所有数据了嘛
    其实就是只要搜索得到符合条件的记录,就可以读取出来,怎么处理都好玩啊!
      

  9.   

    不知道满足你要求不,js实现<select name="city1" style="WIDTH:130px" onChange="redirec(document.getElementById('city1').options.selectedIndex)"
    id="city1" >
    <option selected value="">Select</option>
    <option value="1">西安</option>
    <option value="2">北京</option>
    <option value="3">上海</option>

    </select>
    City:
    <select name="city" style="WIDTH:130px" id="city" runat="server">
    <option value="" selected>Select</option>
    </select>
    <script language="javascript"> 
        var select1_len = document.getElementById("city1").options.length; 
        var select2 = new Array(select1_len); 
        
        for (i=0; i<select1_len; i++) 
        { select2[i] = new Array();} 
         
            select2[0][0] = new Option("Select", ""); 
            select2[1][0] = new Option("北京 700公里", "");
    select2[1][1] = new Option("上海 600公里", "");
    select2[1][2] = new Option("黑龙江 1000公里", "");select2[2][0] = new Option("西安 700公里", "");
    select2[2][1] = new Option("上海 200公里", "");
    select2[2][2] = new Option("汉中 1000公里", "");select2[3][0] = new Option("西安 600公里", "");
    select2[3][1] = new Option("北京 200公里", "");
    select2[3][2] = new Option("汉中 800公里", "");
            
            function redirec(x) 
            {
            var temp = document.getElementById("city"); 
            temp.length = 0;
            for (i=0;i<select2[x].length;i++) 
            { temp.options[i]=new Option(select2[x][i].text,select2[x][i].value);} 
            temp.options[0].selected=true; 
            } 
    </script>