根据多个组合框中选择的选项从数据库获取值


Fetching values from databse depending on the options selected in multiple combo box

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

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

我的需求场景看起来很像这个例子,让第一个组合框包含所有状态的列表。无论何时选择一个州,该州的所有城市都将从数据库中获取并显示在第二个组合框中。

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

我想到了一个解决方案,通过存储在数组中选择的所有项目。我不知道如何实现它。如果有人能提供一个实际的例子,那将是很有帮助的。

我是PHP新手,所以很难实现。

如果有人提供一个工作的例子,这将是很大的帮助。

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

<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>