PHP:如何使选择框工作,以及如何停止下拉菜单选择,从重置为按钮单击时的第一个选项
我对PHP还是比较陌生的,我遇到了一些问题 我设置了一个参数化查询,它使用选定的区域和选定的子系统打印报告。用户从带有5个硬编码区域的选择框中选择区域。然后他们从下拉菜单中选择一个子系统,查询数据库中的行 我没有复制下面的所有代码,只是相关部分 以下是我在列表框的函数页面上的代码:PHP:如何使选择框工作,以及如何停止下拉菜单选择,从重置为按钮单击时的第一个选项,php,drop-down-menu,listbox,Php,Drop Down Menu,Listbox,我对PHP还是比较陌生的,我遇到了一些问题 我设置了一个参数化查询,它使用选定的区域和选定的子系统打印报告。用户从带有5个硬编码区域的选择框中选择区域。然后他们从下拉菜单中选择一个子系统,查询数据库中的行 我没有复制下面的所有代码,只是相关部分 以下是我在列表框的函数页面上的代码: <?php function listbox($query, $name, $previous, $db){ $result=mysqli_query($db,$query) or die("Query
<?php
function listbox($query, $name, $previous, $db){
$result=mysqli_query($db,$query) or die("Query ($query) is incorrect!");
print "<select name=\"$name\">\n";
while ($row = mysqli_fetch_row($result)){ //Table body
if($row[0] == $previous){
print "\t<option value=\"$row[0]\" selected=\"selected\">$row[0]</option>\n";
}else{
print "\t<option value=\"$row[0]\">$row[0]</option>\n";
}
}
print "</select>";
}
?>
以下是我在调用函数页的索引页上的代码:
<?php
$default = "";
$previous = "";
$name4 = "region";
$name1 = "sub";
?>
<select name="<?php print $name4 ?>" size="5">
<option value="Option 1" selected>West</option>
<option value="Option 2">North Central</option>
<option value="Option 3">South Gulf</option>
<option value="Option 4">North East</option>
<option value="Option 5">South Atlantic</option>
</select>
<?php listbox($SubsystemListbox_strSQL, $name1, $previous, $db) ?>
if(isset($_POST['Submit'])){
$ByRegionCap_strSQL = "CALL `unit_costs_db`.`Subsystem_Average_Capital_Costs`('{$_POST[$name4]}', '{$_POST[$name1]}');";
}
重新加载页面时,所有HTML元素都会返回初始状态。
您必须通过HTTP POST获取select的内容,并将其设置为正确选项“selected”是否将表单提交到同一脚本
然后你可以做smth,比如:
<select name="<?php print $name4 ?>" size="5">
<option value="Option 1" <?=$_POST[$name4] == 'West' ? 'selected' : ''?>>West</option>
<option value="Option 2" <?=$_POST[$name4] == 'North Central' ? 'selected' : ''?>>North Central</option>
<option value="Option 3" <?=$_POST[$name4] == 'South Gulf' ? 'selected' : ''?>>South Gulf</option>
...
</select>
西部
>南湾
...
如果是另一个脚本,您可以在会话中保存数据,并通过$\u会话而不是$\u POST进行访问。可能与此无关,但我看到的第一件事是打印选项的方式:
print "\t<option value=\"$row[0]\">$row[0]</option>\n";
打印“\t$row[0]\n”;
PHP不允许对数组执行此操作。您需要断开您的字符串:
print "\t<option value=\"".$row[0]."\">".$row[0]."</option>\n";
打印“\t”。$row[0]。“\n”;
或使用大括号:
print "\t<option value=\"{$row[0]}\">{$row[0]}</option>\n";
打印“\t{$row[0]}\n”;
要保留选定的值,您需要跟踪它们并手动选择所需的值。在您的情况下-检查$previous变量是否正确填充了数据