我如何链接两个下拉菜单框,我可以选择一个菜单,它应该在其他下拉框中显示我的列表?

时间:2013-10-16 11:44:22

标签: php

我想链接一个下拉框菜单,当我选择一个菜单然后它应该显示根据所选菜单使用php的列表,我使用,如果否则但它不工作

    <?php>
    if(value="tata")
    {
    <option value="vista">vista</option>
    <option value="nano">nano</option>
    <option value="aria">aria</option>
    <option value="manza">manza</option>
    }
    elseif(value="fiat")
    {
    <option value="linea">linea</option>
    <option value="punto">punto</option>
    }
    elseif(value="maruti")
    {
    <option value="swift">swift</option>
    <option value="desire">desire</option>
    <option value="omni">omni</option>
    <option value="maruti 800">maruti 800</option>
    }
    elseif(value="hundai")
    {
    <option value="santro">santro</option>
    <option value="verna">verna</option>
    }
    ?>

3 个答案:

答案 0 :(得分:2)

如果你想使用php的动态列表,你应该使用ajax。

试试这个例子:

使用此ajax脚本


       $(document).ready(function() {
 
$('#dropdown').change( function() {
$('#myform').submit();
$.ajax({
data: $(this).serialize(),
type: $(this).attr('method'),
url: $(this).attr('action'),
success: function(response) {
$('#output').html(response);
}
});
return false;
});
});

    <form id=myform method=POST action="process.php">
    <select id="dropdown" name="dropdown">
    <option value="tata">TATA</option>
    <option value="fiat">FIAT</option>
    <option value="maruti">MARUTI</option>
    <option value="hundai">HUNDAI</option>
    </select>
    </form>
    <div id="output"></div>

process.php

    <?php
    $value = $_POST['dropdown'];
    $html = "<select name = 'cars' id='cars'>";
     if ($value == 'tata') {
$html .= "<option value='vista'>vista</option><option value='nano'>nano</option><option value='aria'>aria</option><option value='manza'>manza</option>";
     } elseif($value == 'fiat') {
$html .= "<option value='linea'>linea</option><option value='punto'>punto</option>";
     } elseif($value == 'maruti') {
        $html .= "<option value='swift'>swift</option><option value='desire'>desire</option><option value='omni'>omni</option><option value='maruti 800'>maruti 800</option>";
     } elseif($value == 'hundai') {
$html .= "<option value='santro'>santro</option><option value='verna'>verna</option>";
     }
     $html .= "</select>";

     echo $html;
     exit;

<form id=myform method=POST action="process.php"> <select id="dropdown" name="dropdown"> <option value="tata">TATA</option> <option value="fiat">FIAT</option> <option value="maruti">MARUTI</option> <option value="hundai">HUNDAI</option> </select> </form> <div id="output"></div>

答案 1 :(得分:0)

作为服务器端语言的PHP将需要刷新页面(发布的表单),然后才能获得第一个选定下拉列表的值。

要在没有页面刷新的情况下执行此操作,您需要在客户端使用JavaScript执行此操作。如果列表是通过PHP生成的,那么你应该研究一下AJAX。

答案 2 :(得分:0)

//在header.php上创建这样的数组

$list = array(
    'tata' => array(
        'vista', 'nano', 'aria'
    ),
    'fiat' => array(
        'linea', 'punto'
    ),
    'maruti' => array(
        'swift', 'desire'
    )
};  

//你的car.php你要去哪里动作..这里是一个标题.php

<select name="Manuf" id="Manuf" onchange="show_car(this.value)">
    <option value="">/option>
     <?php 
        foreach($list as $x => $x_value)
        {
           echo '<option value="'.$x.'" >'.$x.'</option>';
        }
    ?>

</select>                                           
<select name="car" id="car"></select>

// Ajax功能用于展示车

function show_car(manuf)
{  
    var xmlhttp;
    if (manuf.length==0)
    { 
        alert("Select manufacturer");
        return;
    }
    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            document.getElementById("car").innerHTML=xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET","ajax.php?manuf="+manuf,true);
    xmlhttp.send();
}

// ajax.php上的代码..call header.php这里也是

foreach($list as $x => $x_value)
{
if($x == $_GET['manuf'])
  {
    for($i=0; $i<sizeof($x_value);$i++)
     {
         echo '<option value="'.$x_value[$i].'" >'.$x_value[$i].'</option>';    
    }
  }
}