用php数组下拉菜单

时间:2013-03-22 11:03:11

标签: php javascript html arrays multidimensional-array

我想更改此菜单,以便如果我选择第二个报告1显示菜单,说明是否有type1,否则转到写入about1的第三个菜单。在所有四个菜单中。我认为最好的方法是PHP但不懂语言。

HTML:

<form name="classic">
   <select style="width: 20%">
       <option value="0"></option>
       <option value="2">report1</option>
       <option value="2">report2</option>
   <option value="2">report3</option>
       <option value="2">report4</option>
   </select>
   <br /><br />
<select style="width: 20%">
    <option value="0"></option>
    <option value="2">tipo1</option>
    <option value="2">tipo2</option>
<option value="2">tipo3</option>
    <option value="2">tipo4</option>
</select>
<br /><br />
    <select style="width: 20%">
    <option value="0"></option>
    <option value="4">about1</option>
    <option value="4">about2</option>
<option value="4">about3</option>
    <option value="4">about4</option>
</select>
<br /><br />
<select style="width: 20%">
    <option value="0"></option>
    <option value="4">periodo1</option>
    <option value="4">periodo2</option>
<option value="4">periodo3</option>
    <option value="4">periodo4</option>
</select>
<br /><br />

</form>

这是javascript的一部分

<script language="JavaScript">
var tiporeportlist=document.classic.tiporeport
var reportlist=document.classic.report

var report=new Array()
report[0]=["report1"]
report[1]=["report2"]
report[2]=["report3"]
report[3]=["report4"]

var tipo=new Array()
tipo[0]=["tipo1"]
tipo[1]=["tipo2"]
tipo[2]=["tipo3"]
tipo[3]=["tipo4"]

var banca=new Array()
about[0]=["about1"]
about[1]=["about2"]
about[2]=["about3"]
about[3]=["about4"]

var periodo=new Array()
periodo[0]=["periodo1"]
periodo[1]=["periodo2"]
periodo[2]=["periodo3"]
periodo[3]=["periodo4"]

function getSelected(select) {

    return select.options[select.selectedIndex].value;
}

function getElement(id)  {

    return document.getElementById(id);
}
function popolaSelect(select,opt) {

    switch (opt) {
        case '1':
            var arr = report;
            break;
        case '2':
            var arr = tipo;
            break;
        case '3':
            var arr = about;
            break;
        case '4':
            var arr = periodo;
            break;
        default:
            return;
            break;
    }

    select.options.length = 1;

    for(var i=0; i<arr.length; i++) {                              

        select.options[select.options.length] = new Option(arr[i],i);        
    }
}
</script>

2 个答案:

答案 0 :(得分:1)

使用PHP无法动态更改选项。每次都应该刷新页面,并且值应该通过GET或POST参数或cookie传递。

更简单的实现方法是使用如下的javascript。它应该可以在Internet Explorer上运行,没有任何问题。虽然没有测试过。

<强> HTML:

<form name="classic">
   <select style="width: 20%" id="s1" onchange="choose('s2',this)">
       <option value="0"></option>
       <option value="2">report1</option>
       <option value="2">report2</option>
   <option value="2">report3</option>
       <option value="2">report4</option>
   </select>
   <br /><br />
<select style="width: 20%" id="s2" onchange="choose('s3',this)">
    <option value="0"></option>
    <option value="2">tipo1</option>
    <option value="2">tipo2</option>
<option value="2">tipo3</option>
    <option value="2">tipo4</option>
</select>
<br /><br />
    <select style="width: 20%" id="s3" onchange="choose('s4',this)">
    <option value="0"></option>
    <option value="4">about1</option>
    <option value="4">about2</option>
<option value="4">about3</option>
    <option value="4">about4</option>
</select>
<br /><br />
<select style="width: 20%" id="s4">
    <option value="0"></option>
    <option value="4">periodo1</option>
    <option value="4">periodo2</option>
<option value="4">periodo3</option>
    <option value="4">periodo4</option>
</select>
<br /><br />

<强>使用Javascript:

function choose(target,option)
{
    var val = option.options[option.selectedIndex].text;
    document.getElementById(target).options[0].innerHTML = val;
}

示例: http://jsfiddle.net/xensoft/QdYSz/

答案 1 :(得分:0)

你可以使用php,但是没有javascript和/或ajax,页面每次都需要刷新。

因此,最好使用javascript。 我建议你看看jquery并尝试一下。