1

我有一个允许多项选择的组合框,我还有另一个组合框。

根据从第一个组合框中选择的值,我需要在第二个组合框中显示它们。

我的需求场景看起来很像这个例子,让第一个组合框包含所有状态的列表。Whenever a state is selected, all the cities in that state will be fetched from the database and displayed in the second combo box.

如果我们在第一个组合框中选择多个项目(状态)。所选州的城市应显示在第二个组合框中。

我想到了一个解决方案,将所有选择的项目存储在一个数组中。我不确定如何实现它。如果有人提供一个工作示例,那将有很大帮助。

我是 PHP 新手,所以很难实现。如果有人提供一个工作示例,那将有很大帮助。

4

1 回答 1

0

在您的状态复选框中使用数组后缀。这是一个小例子。这是非常基本的,但显示了这个想法。

<form method="post">
<table><tr><td>
<?
    // Sample array, you should use database query instead
    $statesArr = array('FL'=>'Florida','CA'=>'California','NY'=>'New York');

    foreach ($statesArr as $stateCode => $stateName) { 
        $checked = (count($_POST['states']) && in_array($stateCode,$_POST['states']))?'checked="checked"':''; // rechecking selected checkboxes
        echo '<label><input type="checkbox" name="states[]"  value="'.$stateCode.'" '.$checked.'/>'.$stateName.'</label><br />';
    }

?>
</td><td>
    <?  if ($_POST && count($_POST['states'])) {
            echo '<select multiple="multiple">';
            $sql = "SELECT `CityName` FROM `Cities` WHERE `ParentStateCode` IN ('".implode("','",$_POST['states'])."')";
            $result = mysql_query($sql);
            while ($row = mysql_fetch_assoc($result)) {
                echo '<option>'.$row['CityName'].'</option>';
            }
            echo '</select>';
        }
    ?> 
    </td>
    </tr></table>
    <input type="submit" />
</form>
于 2013-03-19T18:13:26.490 回答