0

我想链接一个下拉框菜单,当我选择一个菜单时,它应该根据使用 php 选择的菜单显示一个列表,我使用 if else 但它不起作用

    <?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>
    }
    ?>
4

3 回答 3

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;

于 2013-10-16T12:43:53.083 回答
0

//在header.php上制作这样的数组

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

//你的car.php你要在哪里做你的action..call header.php here

<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>';    
    }
  }
}
于 2013-10-16T12:14:11.843 回答
0

PHP,作为一种服务器端语言,需要在第一个选定下拉列表的值可用之前刷新页面(发布的表单)。

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

于 2013-10-16T11:58:11.277 回答