首页 > 解决方案 > 选择 on-change 选择的加载项

问题描述

我有一个带有选择的表单,可以在更改时将值提交给 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";
}}

预期的:

实际的:

标签: phpselectget

解决方案


当值没有改变时,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注入开放,需要使用prepaired statement bobby Tables


推荐阅读