dongqiang1894 2019-02-26 10:23
浏览 91
已采纳

PHP在新表单后删除变量

In my code, I have two forms for users to select options. The first variable will save but as soon as the user submits the second form, the variable from the first form is no longer saved.

<div class = "school">
<h3>Please select the university you previously attended</h3>
<form action = "" method = "post" name = "school_form">
<select name="school" size ="10">

<?php
//shows options for $selected_school
$sql = "SELECT DISTINCT school FROM data;";
$result = mysqli_query($conn, $sql);
$resultCheck = mysqli_num_rows($result);
if ($resultCheck > 0){
while($row = mysqli_fetch_assoc($result)){
  // inserts all data as array
  echo "<option>". $row['school'] ."</option>";
      }
 }
?>

</select>
<br>
<input type ="submit" name = "submit_school" value = "Enter">
</form>
<?php
//saves selected option as $selected_school
if(isset($_POST['submit_school'])){
$selected_school = mysqli_real_escape_string($conn, $_POST['school']);
echo "You have selected: " .$selected_school;
}
?>

</div>
<div class ="courses">
<h3>Please select the courses you took</h3>
<form action = "" method ="post" name ="course_form">

<?php
//user shown options for courses
$sql2 = "SELECT transfer_course, transfer_title FROM data WHERE school = ? ORDER BY transfer_course ASC";
$stmt = mysqli_stmt_init($conn);
if(!mysqli_stmt_prepare($stmt, $sql2)) {
echo "SQL statement failed";
} else {
mysqli_stmt_bind_param($stmt, "s", $selected_school);
mysqli_stmt_execute($stmt);
$result2 = mysqli_stmt_get_result($stmt);

while($row2 = mysqli_fetch_assoc($result2)){
echo "<input type='checkbox' name ='boxes[]' value = '" . $row2['transfer_course'] . "' >" . $row2['transfer_course'] . "<br>";
      }
 }
?>
<br>
<input type ="submit" name = "submit_courses" value = "Enter">
</form>
<br>
<?php
//saved selected option(s) as $selected_course
if(isset($_POST['submit_courses'])){//to run PHP script on submit
   if(!empty($_POST['boxes'])){
      foreach($_POST['boxes'] as $selected_course){
         echo "You have selected: " . $selected_course . "</br>";
      }
   }
 }
 ?>
 </div>
<div class = "output">
<h3>Course Equivalency</h3>
<?php
$sql3 = "SELECT arcadia_course, arcadia_title FROM data WHERE school = " . $selected_school . " AND transfer_course = " . $selected_course . "";
$result3 = mysqli_query($conn, $sql3);
if($result3)
{
  while($row3 = mysqli_fetch_assoc($result3)){
    echo $row3['arcadia_course'] . " " . $row3['arcadia_title'] . "<br>";
 }
 } else {
    echo "failed";
    echo $sql3;
}

 ?>

So by the time I get to my next sql statement

$sql3 = "SELECT arcadia_course, arcadia_title FROM data WHERE school = " . $selected_school . " AND transfer_course = " . $selected_course . "";

When the school is selected, it saves the variable, but when the course is selected, $selected_school becomes blank again.

I already have session_start() at the top of the page.

展开全部

  • 写回答

2条回答 默认 最新

  • dongping1012 2019-02-26 20:24
    关注

    You can used session variable ,it will help to make data accessible across the various pages .

    So,whenever form get submitted you can save that value in session and retrieve it anytime.In top of your php file you need to start session i.e session_start(); .Then in your code

    <?php
    //saves selected option as $selected_school
    if(isset($_POST['submit_school'])){
     $_SESSION['selected_school ']=$selected_school;// here you are storing value to session 
    $selected_school = mysqli_real_escape_string($conn, $_POST['school']);
    echo "You have selected: " .$selected_school;
    }
    ?> 
    

    Same you can do with your $selected_course also .Then you can passed value to your query like below :

    $sql3 = "SELECT arcadia_course, arcadia_title FROM data WHERE school = " .$_SESSION['selected_school ']. " AND transfer_course = " .$_SESSION['selected_course']. "";
    

    For more information refer here

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部