php - 选择 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";
}}
预期的:
从选择中选择第一项时,应将值发送到 php 查询。
当从选择中选择一个项目时,该项目应显示为选中。
实际的:
- 选择第一个选项什么都不做
- 选择第二个选项确实会返回正确的数据,但未选择
解决方案
当值没有改变时,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
推荐阅读
- javascript - Angular - 带参数的方法的 Jest 单元测试
- javascript - JavaScript 通过选择选项对表数据进行排序
- winapi - 是否可以访问创建 Windows 服务时使用的凭据?
- python - Pandas:比较数据框的列并根据条件添加新列和值
- android - 如何让我在 android 中的 webview 响应 jquery 和其他 js 库
- c# - C# WPF 中的 RichTextBox 在执行期间更改位置
- c# - 以编程方式更改微调器项目文本颜色
- c# - 使用 Activity.Text 捕获卡片按钮单击为空
- react-native - react-native-swiper 中的可滑动区域
- java - 如何将方法调用传递给 JOptionPane.showMessageDialog 参数