插入隐藏输入的值以及选择<选项>

时间:2018-05-08 23:18:55

标签: php

如果我选择第一个选项,我会尝试在数据库中插入一个隐藏值,隐藏值应该插入到不同的列中。

所以这是我的代码:

    <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。

像这样:

Screen shot

因此,如果我选择了课程6,那么insert列值为31 {/ 1}}

现在,即使我选择了课程5,它也只插入第一个隐藏的输入

是否可以仅使用PHP进行操作?因为我对jQuery和东西并不多。

我还是初学者。

修改

我的插入查询:

group_id

2 个答案:

答案 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?>' >

因此产生的输出是

然后你可以通过

获取任何选项值的组ID
var 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);