如果我选择第一个选项,我会尝试在数据库中插入一个隐藏值,隐藏值应该插入到不同的列中。
所以这是我的代码:
<select class="form-control" id="students" name="students" size="1" required>
<option dir='rtl'value=''>choose a course :)</option>
<?php
$query = "SELECT gid,course_id,course_title,course_cord,group_time,course FROM courses JOIN groups WHERE course_id = course ORDER BY gid DESC ";
$run = $connection->prepare($query);
if(!$run){
die("ded !".mysqli_error($connection));
}
$run->execute();
$run->bind_result($gid,$course_id,$course_title,$course_cord,$group_time,$course);
while($run->fetch()):
echo "<option dir='rtl'value='$course_id'>($group_time)$course_title BY $course_cord </option> ";
endwhile;
?>
</select>
我的隐藏输入:
<?php
$query2 = "SELECT gid,course_id,course_title,course_cord,group_time,course FROM courses JOIN groups WHERE course_id = course ";
$run2 = $connection->prepare($query2);
if(!$run2){
die("rip".mysqli_error($connection));
}
$run2->execute();
$run2->bind_result($gid,$course_id,$course_title,$course_cord,$group_time,$course);
while($run2->fetch()):
?>
<input type='hidden' id='hiddenInput' name='group_id' value='<?php echo $gid; >'>
<?php endwhile; ?>
每个<option>
的值都为$ gid。
像这样:
因此,如果我选择了课程6,那么insert
列值为31 {/ 1}}
现在,即使我选择了课程5,它也只插入第一个隐藏的输入
是否可以仅使用PHP进行操作?因为我对jQuery和东西并不多。
我还是初学者。
修改:
我的插入查询:
group_id
答案 0 :(得分:0)
有很多方法可以使用一个控件来提交多个值。其中一个简单方法是使用分隔符创建格式化字符串。
例如
<option value='$course_id:$gid'...
然后当您处理表单提交时,您可以拆分(explode()
)值来获取部分,例如
list($course_id, $group_id) = explode(':', $_POST['students']);
这将为这两个变量赋值,然后您可以将这些变量绑定到查询中,例如
':group_id' => $group_id,
':students' => $course_id
使用它,您将不需要隐藏的输入,这样可以节省您第二次执行查询的时间。
答案 1 :(得分:0)
使用javascript执行此操作:只需向隐藏元素和选项添加一些属性,以便他们可以找到彼此......有点像这样:
<input type='hidden' id='hiddenInput' name='group_id' value='<?php echo $gid; >' course_id='<?php echo $course_id?>' >
因此产生的输出是
然后你可以通过
获取任何选项值的组IDvar element = document.querySelector("#students");
var courseId = element.value
var selector = 'input[course_id=' + courseId + ']'
var hiddenElement = document.querySelector(selector)
var GID = hiddenElement.value
alert("You picked course: " + courseId + " which is group: " + GID);