PHP下拉列表保持重新加载

时间:2016-07-09 11:55:20

标签: php mysql

我是PHP的新手,刚开始用这种语言进行专业开发。我在php中创建了一个动态下拉列表,如下所示:

$sql="select DISTINCT State from branchinfo";
    $result = $conn->query($sql);
    if($result->num_rows > 0)
    {
        echo "< SELECT NAME='states'>";
        while($row=$result->fetch_assoc())
        {
            echo "< OPTION NAME = '" . $row['State'] . "'" . " VALUE = '" . $row['State'] . "'>" . $row["State"]; 
        }<br>
        echo "< /SELECT>";
    }
    echo "< INPUT TYPE='submit' name='submit' value='submit'>";

问题是当我选择状态并单击提交时,列表重新加载并且我的选择丢失,默认情况下会选择第一个选项。我试图将脚本嵌入OPTION中,但它没有工作,我尝试了如下:

    echo "< OPTION NAME='" . $row['State'] . "'" . " VALUE='" . $row['State'] . "'" . if(isset($_POST["submit"])){ if($_POST["states"] == $row['State']) echo "selected";} . " >" . $row["State"];<br>

到目前为止,我还没有在本页面上使用任何javasrcipt / jquery,也没有计划使用它。 plz在此代码中提供了一个解决方案。请帮忙。

一些其他信息

我尝试的方法如上所述,在以html格式编写的硬编码静态下拉列表项中工作正常。它停止为动态生成的列表工作。

2 个答案:

答案 0 :(得分:0)

您必须在表单标记内添加下拉列表,然后才能生效。

$sql = "select DISTINCT State from branchinfo";

$result = $conn->query($sql);

echo "<form method='POST'>";

if ($result->num_rows > 0) {

    echo "<SELECT NAME='states'>";

    while ($row = $result->fetch_assoc()) {

        $sel = ( $_POST['states'] == $row['State'] ) ? "selected" : "";

        echo "< OPTION NAME = '" . $row['State'] . "'" . " VALUE = '" . $row['State'] . "' " . $sel . ">" . $row["State"] . "</OPTION>";
    }
    echo "</SELECT>";
}
echo "<INPUT TYPE='submit' name='submit' value='submit'>";
echo "</form>";

答案 1 :(得分:0)

使用会话记住您的选择。当重新加载页面时,只需检索您之前选择的值。

喜欢

    while($row=$result->fetch_assoc())
        {
if($sessionvalue==$row['State']){
echo "< OPTION SELECTED NAME = '" . $row['State'] . "'" . " VALUE = '" . $row['State'] . "'>" . $row["State"]; 
}else{
echo "< OPTION NAME = '" . $row['State'] . "'" . " VALUE = '" . $row['State'] . "'>" . $row["State"]; 
}

        }