php - 如果我使用另一个 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 = ''";
?>
解决方案
做这样的事情(没有客户端代码)的传统方法是在第 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>
推荐阅读
- aws-sdk-go - aws-sdk-go 在使用 kube2iam 时获取 NoCredentialProviders
- android - 将 C 库与 React Native 一起使用
- c# - 如何使用动态标签名称将数组序列化为 XML
- php - 使用 PHP 或 SQL 按出现优先级对 MYSQL 结果进行排序
- vba - 在多个工作表的单元格中查找公式并替换为新公式,但引用单元格来获取公式的一部分
- grafana - 使用 prometheus 和 grafana 跟踪事件
- c++ - 为什么我的 C++ 程序输出不同的数字来将米转换为英尺?
- android - GPS追踪器android线程
- python - 通用日志记录函数包装器
- python - 如何使用复式表在 3D 中绘图 - Matplotlib