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

时间:2013-03-19 16:55:10

标签: php

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

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

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

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

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

我是PHP的新手,因此很难实现。如果有人提供一个有效的例子,那将会有很大的帮助。

1 个答案:

答案 0 :(得分: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>