【发布时间】:2018-03-08 21:11:22
【问题描述】:
所以我有两个页面,两个页面都有一个输入字段,如果用户填写输入字段并转到下一页,他们将在表单的位置看到新内容。所以它基本上就像“填写此表格并显示新内容”。无论您是在 A 页还是 B 页填写表格,其他页面都会识别您是否已填写。有意义吗?
只要您不刷新页面或进入其他页面(而不是单击提交输入),它就可以工作。
我在这里做错了什么?
<!--- Page A -->
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui" name="viewport">
<meta content="noindex, nofollow" name="robots">
<title>Page A</title>
<meta content="Page" name="description">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>
<form action="/b.php" id="l-form" method="post" name="l-form">
<div class="wrapper localize" style="<?php if(isset($_POST['treasure'])) { echo "display:none;"; } else { echo "display:block;"; } ?>">
<div class="header_container">
<h2>Make sure we offer service at your location</h2>
</div>
<div class="input_container">
<input autocomplete="off" class="input-box street" id="street" name="userLogin" placeholder="Street address" tabindex="0" type="text">
<input autocomplete="off" class="input-box suite" id="suite" name="suite" placeholder="Suite (Optional)" tabindex="0" type="text">
<input autocomplete="off" class="input-box zipcode" id="zipcode" name="zipcode" placeholder="Zip code" tabindex="0" type="text">
<input type="submit" name="treasure" value="See offers">
</div>
</div>
<!-- results 3 -->
<div class="results" style="<?php if(isset($_POST['treasure'])) { echo "display:block;"; } else { echo "display:none;"; } ?>">
<p class="results-heading">Excellent news. We know who you are.</p
</div>
</form>
</body>
</html>
<!--- Page B -->
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui" name="viewport">
<meta content="noindex, nofollow" name="robots">
<title>Page A</title>
<meta content="Page" name="description">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>
<form action="/a.php" id="l-form" method="post" name="l-form">
<div class="wrapper localize" style="<?php if(isset($_POST['treasure'])) { echo "display:none;"; } else { echo "display:block;"; } ?>">
<div class="header_container">
<h2>Make sure we offer service at your location</h2>
</div>
<div class="input_container">
<input autocomplete="off" class="input-box street" id="street" name="userLogin" placeholder="Street address" tabindex="0" type="text">
<input autocomplete="off" class="input-box suite" id="suite" name="suite" placeholder="Suite (Optional)" tabindex="0" type="text">
<input autocomplete="off" class="input-box zipcode" id="zipcode" name="zipcode" placeholder="Zip code" tabindex="0" type="text">
<input type="submit" name="treasure" value="See offers">
</div>
</div>
<!-- results 3 -->
<div class="results" style="<?php if(isset($_POST['treasure'])) { echo "display:block;"; } else { echo "display:none;"; } ?>">
<p class="results-heading">Excellent news. We know who you are.</p
</div>
</form>
</body>
</html>
【问题讨论】:
-
你没有使用任何会话变量;刷新重新加载页面 http 是无状态的,它的工作方式与我目前期望的一样
-
我添加了 $_SESSION['treasure'] = $_POST['treasure'];到页面顶部,它仍然无法正常工作。我错过了什么?用户点击提交后,我希望隐藏输入字段并显示新 div 与其他内容。也许这是不可能的?