Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当重定向回起始页时,如何显示在下拉菜单中选择的原始名称?_Php_Html - Fatal编程技术网

Php 当重定向回起始页时,如何显示在下拉菜单中选择的原始名称?

Php 当重定向回起始页时,如何显示在下拉菜单中选择的原始名称?,php,html,Php,Html,我想返回到我的原始索引页面,让下拉菜单显示最初选择的名称。然后,我想选择另一个学生并再次执行任务 目前,我能够: 从下拉菜单中选择学生并将所选学生提交到另一页 更新学生的特征并重定向回原始页面 我可以在下拉菜单中显示学生姓名,但当我选择一个新学生时,我选择的正上方的学生将被选中 第1页代码,带下拉菜单 <div> <?php if (session_status() == PHP_SESSION_NONE || session_id() == '') {

我想返回到我的原始索引页面,让下拉菜单显示最初选择的名称。然后,我想选择另一个学生并再次执行任务

目前,我能够:

  • 从下拉菜单中选择学生并将所选学生提交到另一页
  • 更新学生的特征并重定向回原始页面
  • 我可以在下拉菜单中显示学生姓名,但当我选择一个新学生时,我选择的正上方的学生将被选中

    第1页代码,带下拉菜单

     <div>
        <?php
         if (session_status() == PHP_SESSION_NONE  || session_id() == '') {
            session_start();
            $pid = $_SESSION['stu_name_id_select'];
            echo $pid;
           }
         ?>
        <form name = "test" method="POST" action = "">
        <?php
        $select_student= $db->prepare("SELECT stu_name_id FROM students WHERE active = 'Yes' order by stu_name_id");    //sql select query
        $select_student->execute();
        echo "<select name='stu_name_id_select' onChange ='this.form.submit()'><option>Select</option>";   
        while ($result1=$select_student->fetch(PDO::FETCH_ASSOC)){
           echo "<option value = '".$pid."'";
          //echo "<option value = '".$result1['stu_name_id']."'";
          if (isset($_POST['stu_name_id_select']) && $_POST['stu_name_id_select'] == $result1['stu_name_id'])  echo 'selected="selected"';
             echo ">".$result1['stu_name_id']."</option>";  
             $pid = $resule1['stu_name_id'];
            }
        echo "</select>";       
       ?>
     <input type="submit" value="Add/Edit Records"  onclick="test.action='edit_records.php'; return true;" />
     <input type="submit" value="Add/Edit Accommodations"  onclick="test.action='accommodations.php'; return true;" />
     </form>
     </div>
    

    您将在循环的末尾而不是开始处重新分配
    $pid
    ,因此每个学生实际上都有上一个学生的pid

    只需移动
    $pid=$result1['stu_name_id']
    作为
    while
    循环启动后的第一条指令

    while ($result1=$select_student->fetch(PDO::FETCH_ASSOC)){
      $pid = $resule1['stu_name_id'];
      echo "<option value = '".$pid."'";
      if (isset($_POST['stu_name_id_select']) && $_POST['stu_name_id_select'] == $result1['stu_name_id'])  echo 'selected="selected"';
      echo ">".$result1['stu_name_id']."</option>";  
    }
    
    while($result1=$select\u student->fetch(PDO::fetch\u ASSOC)){
    $pid=$result1['stu_name_id'];
    回显“$result1['stu_name_id'”;
    }
    
    我通过更改此代码解决了此问题

    while ($result1=$select_student->fetch(PDO::FETCH_ASSOC)){
      echo "<option value = '".$pid."'";
      if (isset($_POST['stu_name_id_select']) && $_POST['stu_name_id_select'] == $result1['stu_name_id'])  echo 'selected="selected"';
      echo ">".$result1['stu_name_id']."</option>";  
      $pid = $result1['stu_name_id'];
    }
    
    while($result1=$select\u student->fetch(PDO::fetch\u ASSOC)){
    回显“$result1['stu_name_id'”;
    $pid=$result1['stu_name_id'];
    }
    

    foreach($result1作为$row){
    如果(isset($\u会话['stu\u name\u id\u select'])和&$\u会话['stu\u name\u id\u select']=$row['stu\u name\u id']))
    {
    回显“$”会话['stu\u name\u id\u select'];
    $\u POST['stu\u name\u id\u select']=$\u会话['stu\u name\u id\u select'];
    取消设置($_会话['stu\u name\u id\u select'];)
    否则{
    回显“$row['stu_name_id']。”;}
    } 
    
    必须首先将
    会话启动
    功能发送到浏览器,否则它将无法正常工作。你的不是第一件事…@Kinglish回声$pid显示的是正确的名称,所以我认为这部分工作正常。如果我删除这一行,$pid=$result1['stu_name_id'];下拉菜单显示正确的名称,但由于$pid未更新,因此我无法选择新学生。当我移动$pid=$Result1['stu_name_id'];我可以从下拉窗口中选择学生的姓名,在我的选择上方选择学生的问题不会发生,但当我返回到索引页时,所选学生的姓名不再显示在下拉窗口中,现在显示select。
    while ($result1=$select_student->fetch(PDO::FETCH_ASSOC)){
      echo "<option value = '".$pid."'";
      if (isset($_POST['stu_name_id_select']) && $_POST['stu_name_id_select'] == $result1['stu_name_id'])  echo 'selected="selected"';
      echo ">".$result1['stu_name_id']."</option>";  
      $pid = $result1['stu_name_id'];
    }
    
      foreach ($result1 as $row){
         if(isset($_SESSION['stu_name_id_select']) && $_SESSION['stu_name_id_select'] == $row['stu_name_id'])
                {
                echo "<option selected = 'selected'  value=\"".$_SESSION['stu_name_id_select']."\">".$_SESSION['stu_name_id_select']."</option>";
                $_POST['stu_name_id_select'] = $_SESSION['stu_name_id_select'];
                unset($_SESSION['stu_name_id_select']);}
               else{    
                 echo "<option value = '".$row['stu_name_id']."'";
                 if (isset($_POST['stu_name_id_select']) && $_POST['stu_name_id_select'] == $row['stu_name_id']) echo 'selected="selected"';
                 echo ">".$row['stu_name_id']."</option>";}
        }