我是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格式编写的硬编码静态下拉列表项中工作正常。它停止为动态生成的列表工作。
答案 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"];
}
}