首页 > 解决方案 > 如果我使用另一个 GET,如何维护地址栏上的 PHP GET 值?

问题描述

我正在使用 GET 将一个变量从 page1 传递到 page2,它已经在工作了。但是,我还在<select> <option>page2 上使用了另一个 get,这意味着当我单击选项中的一个项目时,我从 page1 获得的值会消失并且由于地址栏发生变化而变得未定义。我希望在 SQL where 子句中比较从 page1 获得的变量。我想不出如何解决这个问题的方法,我对 PHP 不是很了解,你能帮帮我吗?

这是我的代码(我删除了一些不必要的行):page1

<form method="get" action="home.php">
 <div class="form-group">
  <input id="codehe" class="form-control" type="codehe" name="codehe" placeholder="Class Code">
 </div>
 <div class="form-group">
  <input class="form-control button" type="submit"> 
 </div>
</form>

page2(这就是我从 page1 获取值的方式)

<?php 
$codehe = $_POST['codehe'];
echo $codehe;
?>

page2 上的另一个 GET(表单)

<form method="GET">
 <select id="state" multiple name="state" onchange='if(this.value != 0) { this.form.submit(); }'>
  <option value="ALL">ALL</option> 
    <option value="<?php echo $row['subjects'];?>"><?php echo $row['subjects'];?></option> 
 </select>
</form>
<?php
 if(isset($_GET['state'])) {
  $str = $_GET["state"];
   $sql = "SELECT * FROM classvideo WHERE subjects = '$str' AND linkcode = ''";  
?>                           

标签: php

解决方案


做这样的事情(没有客户端代码)的传统方法是在第 2 页的表单中放置一个隐藏的输入:

<form method="GET">
 <select id="state" multiple name="state" onchange='if(this.value != 0) { this.form.submit(); }'>
  <option value="ALL">ALL</option> 
    <option value="<?php echo $row['subjects'];?>"><?php echo $row['subjects'];?></option> 
 </select>
 <!-- Add this line -->
 <input type="hidden" name="codehe" value="<?php echo $_GET['codehe'] %>">
</form>

推荐阅读