我在页面上有一个小表单,我要求输入用户名,表单将数据发送到name.php并回显用户名,例如" Hello Steven"史蒂文就是这个名字。
现在名称已经回显到该表单,我想在页面的其他地方再次回显相同的数据。这就是我碰壁的地方。
我宁愿不将输入到表单中的名称发送到服务器或数据库,而只是将它们保存在会话中然后丢失它们。
现在的问题是在一个页面上多次回显表单数据。
我现在使用的代码如下:
<form role="form" id="inviteform3" class="form-inline" action="name.php" method="POST">
<div class="form-group">
<input type="text" class="form-control input-sm" name="name" placeholder="Your Name"
id="hello" autocomplete="off" style="margin-top:10px">
</div>
<center>
<span id="result"></span>
<button class="btn btn-brand btn-sm next-screen animated bounceInUp"
id="go" style="margin-top:5px; display:none" href="#services" data-animation-delay=".5s">
Let's Go!</button></center>
<button class="btn btn-block btn-brand btn-xs invitebtn3" id="casi" type="submit"
style="margin-top:5px"><i class="fa fa-thumbs-o-up"></i> Submit</button>
</form>
我的php表单(name.php)如下:
<html>
<body>
Let's get started, <?php echo $_POST["name"]; ?>
</body>
</html>
我的js代码是:
<script>
$(document).on("ready", function(){
//Form action
$("#inviteform3").on("submit", function(event){
// Stop submit event
event.preventDefault();
$.ajax({
type:'POST',
url: 'name.php',
data:$('#inviteform3').serialize(),
success: function(response)
{
$('#inviteform3').find('#result').html(response);
}});
});
});
</script>
答案 0 :(得分:0)
$("#inviteform3").on("submit", function(event) {
var name = $("form input['name']").val();
// Here is the interesting part
sessionStorage.setItem("name", name);
}
// Get that name
var access_name = sessionStorage.getItem("name");
$("#some_id").html(access_name); // Inserts the name where you want it.
每次关闭选项卡/窗口时都会擦除sessionStorage。
答案 1 :(得分:0)
您可以使用PHP而不是Javascript。
session_start();
$_SESSION['name'] = $_POST['name'];
当浏览器关闭时,$_SESSION
变量被清除,并且是全局的,因此可以在任何地方访问。 session_start
必须是您在第一页运行的第1行上做的第一件事。
有关PHP会话的更多信息,请参见here和约$_SESSION
here。
例如:
您要发布到name.php。所以在name.php的第1行做
<?php session_start(); ?>
然后做
<?php
if (isset($_POST['name'])) {
$_SESSION['name'] = $_POST['name'];
}
?>
然后,无论您想在何处使用它,只需执行echo $_SESSION['name'];
如果要在其他文件中回显。然后在另一个文件的第1行做
<?php session_start(); ?>
然后:
<?php
if (isset($_SESSION['name'])) {
echo $_SESSION['name'];
}
?>
if语句只是用于检查,但如果您确信已设置,则不需要它。
答案 2 :(得分:0)
我们需要直接了解一些事情:
我宁愿不将输入到表单中的名称发送到服务器或数据库,而只是将它们保存在会话中然后丢失它们。
您是将该数据发送到服务器,您已经使用jQuery和AJAX将POST
表单添加到name.php(php在服务器上工作),从中您收到响应并使用以下行添加您的页面:
$('#inviteform3').find('#result').html(response);
如果您希望 KEEP 存储该数据(例如在会话中),您可以使用Antony D&#39; Andrea在name.php
中建议的PHP。关闭浏览器后,会话将被销毁。直到你可以随时使用会话变量。
现在该名称已经回显到该表格,我想回应一下 相同的数据再次在页面的其他地方。这就是我跑的地方 撞墙。
您echo
name.php
中的名称,然后您的AJAX调用将检索整个页面(包括html
和body
标记)并将其添加到{{} 1}}。如果要多次显示名称,只需在上面的行中多次附加。