我有一个带有选择的表单,该表单在更改时向php查询提交值,但是我遇到两个问题。
在任何阶段,我似乎都无法提交选择列表中的第一个条目,并且当我选择任何其他条目时,尽管查询确实返回了该值的正确数据,但选择本身将第一个条目显示为选择,理想情况下,我希望它显示选择的实际条目。
<form action=" " method="get">
<select class="form-control select2-single " id="p1" name="projects"
onchange="this.form.submit()">
echo "<option value='$project_id'>$project_name</option>";
</form>
if(!isset($_GET["projects"])){
$project = 1;} else {
$project = $_GET["projects"];
$query = "SELECT * FROM items WHERE item_id = $project";
}}
预期:
从选择中选择第一项时,该值应发送到php查询。
,并且从选择中选择一个项目时,该项目应显示为选中状态。
实际:
答案 0 :(得分:0)
当值不变时,onchange不会触发。添加一个空白项将使您摆脱困境。也许是Java脚本库。
$options = [1,2,3,4];
echo '<form method="get">
<select class="form-control select2-single " id="p1" name="projects" onchange="this.form.submit()">
<option value=""></option>';
foreach($options as $option){
$selected = '';
if($_GET['projects'] == $option){
$selected = 'selected';
}
echo "<option value='$option' $selected >$option</option>";
}
echo '<select/></form>';
print_r($_GET);
您愿意接受sql注入,需要使用预配对的语句bobby Tables