创建3个相互关联的下拉菜单

时间:2012-05-28 19:41:24

标签: php javascript

我需要创建3个相互关联的相关下拉菜单。因此,如果选择第一个,相关数据将显示在第二个下拉列表中,当在第二个下拉列表中选择一个选项时,在第三个下拉列表中将显示一些相关数据。

我需要在此表单上使用$ _GET,因此如果选择第二个中的特定选项,则会显示按摩,当选项是第3个下拉选项时,页面会重定向到例如www。 google.com。我在第一个文件中需要两个无相关数据,所以当它们被选中时,页面会重定向到www.msn.com。

我知道它需要JavaScript,但不幸的是我现在还不知道JS。

请不要使用“this.value”将参数发送到JavaScript,因为它与我的其他代码冲突。

(我不希望页面重新加载)

类似的东西:

Drop down 1  ----------------------- drop down 2  ----------------------- drop down 3

option 1 ( redirect to msn.com)

option 2 ==========================> Option 100 ======================> Option 500
                                     Option 101                         Option 501
Option 3 (redirect to google.com)    Option 102 (message:Hello )
                                     Option 103 ======================> Option 700
                                                                        Option 701

我努力解释它,我希望你得到我想说的话。

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

这是一个快速而肮脏的答案......

    <html>
      <head>
        <script type='text/javascript'>
          var drop3Options = {"100":["500","501"],"103":["700","701"]};
          function drop1Change(){
            var value = document.getElementById("drop1").value;
            if(value == "msn")
              window.location.href = "http://www.msn.com";
            else if(value == "google"){
              window.location.href = "http://www.google.com";
            }                
          }
          function drop2Change(){
            var value = document.getElementById("drop2").value;
            var drop3List = document.getElementById("drop3");
            if(drop3Options[value]){
              drop3List.options.length = 0;
              for(var i = 0; i < drop3Options[value].length; i++){
                drop3List.options[i] = new Option(drop3Options[value][i],drop3Options[value][i]);
              }
            }
          }
        </script>
      </head>

      <body>
        <form method='GET' action='serverScript.php'>
          <select id='drop1' onchange='drop1Change()'>
            <option value='msn'>MSN</option>
            <option value='dr2'>DROP 2</option>
            <option value='google'>GOOGLE</option>  
          </select>

          <select id='drop2' onchange='drop2Change()'>
            <option value='100'>100</option>
            <option value='101'>101</option>
            <option value='102'>102</option>  
            <option value='103'>103</option>              
          </select>         

          <select id='drop3'>
            <option value='500'>500</option>
            <option value='501'>501</option>
          </select>
          <input type='submit' value='SUBMIT'/>
        </form>
      </body>
    </html>

显然我不知道你使用这个脚本究竟是做什么的,所以我很难做出假设并给你更好的代码,但是这将做我所理解的问题。我也不会我不知道你要发送给哪些服务器端脚本。但只需更改表单中的ACTION属性以反映服务器脚本的位置..

javascript有一个全局变量(drop3Options)。这是一个具有两个属性的对象,它们为select 3选项保存了2个数组。

所以drop3Options ['100']包含一个数组['500','501'] 和drop3Options ['103']包含一个数组['700','701']

当你更改一个选择框时,它调用适当的方法,这是通过向每个select元素添加“onchange”属性来完成的,它调用查看值的函数并做相应的事情

我认为你需要做的不仅仅是这个,所以评论更具体,我很乐意帮助