在javascript/php.html中选择第一个下拉列表后,更新第二个下拉列表


Updating a second dropdown after the first one has been chosen in javascript/php/html

我需要一个可以填充第二、第三、,。。。,选择第一个下拉列表后的第七个下拉列表(所有相同条目)。我将所有的值存储在HTML头之前的PHP数组中。

我看了一些例子,但找不到具体的解决方案

例如:假设我有一个仓库,里面装满了上述特许经营商和网点,我需要为拥有n个网点的特定特许经营商提前7天创建订单列表。我的解决方案是,用户/仓库运营商将选择一个特许经营商,然后第二个(直到第七个)下拉列表将包含所选特许经营商下的门店。

谢谢。


<?php
$productClass = new product();
$productClass->setProductList();
$franchiseeClass = new users();
$franchiseeClass->getAndSetAllFranchisees();
$franchiseeArray = $franchiseeClass->getUserList();
$operatorOutletClass = new users();
$operatorOutletClass->getAndSetUserByLevel("5");
?>
<html><head></head><body>
<div align="center">
    <form name="BBOFranchisee" method="post" action="?" onSubmit="return checkSubmit()">
        <table align="center" border="1">
            <tr>
                <td>
                    Franchisee: 
                </td>
                <td colspan="8">
                    <select name="displayFranchisee" size="1" onChange="populateOutlet('findOutletByFranchisee.php?fid='+this.value)">
                        <option label="franchisees" value="0">--Choose Franchisee--</option> 
                        <?php 
                        for($i=0;$i<count($franchiseeArray);$i++)
                        { 
                            foreach($franchiseeArray[$i] as $key => $val)
                            {
                                echo "<option label='"franchisees'" value='"$key'">$val</option>'n";
                            }             
                        } ?>
                    </select>
                </td>
            </tr>
<tr>
                <?php for($j=0;$j<7;$j++) { ?>
                <td>
                    Outlet:
                    <select name="displayOutlet<?php echo $j; ?>" size="1">
                        <option label="outlets" value="0">&nbsp;</option> 
                    </select>
                </td>
                <?php } ?>
            </tr>
</body>
</html>

我想继续是javascript部分。。我试图找到解决方案http://roshanbh.com.np/2007/12/change-dropdown-list-options-values-from-database-with-ajax-and-php.html提供,但它不适用于多个下拉列表。

为了使用这个javascript示例,您需要在第2到第7次选择-id="displayOutlet<?php echo $j; ?>" 中添加一个id

<?php for($j=0;$j<7;$j++) { ?>
      <td>
          Outlet:
          <select name="displayOutlet<?php echo $j; ?>" id="displayOutlet<?php echo $j; ?>"size="1">
               <option label="outlets" value="0">&nbsp;</option> 
          </select>
      </td>
<?php } ?>

然后在您的javascript代码中,您可以为第2nd-7th个选择添加一个循环。

if(req.status == 200) { // which represents ok status 
    for(var i=0;i<7;i++){
        document.getElementById('displayOutlet'+i).innerHTML=req.responseText;
    }      
}