回送表单数据而不发送到服务器

时间:2015-01-03 06:11:23

标签: php html5 forms echo

我在页面上有一个小表单,我要求输入用户名,表单将数据发送到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>

3 个答案:

答案 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调用将检索整个页面(包括htmlbody标记)并将其添加到{{} 1}}。如果要多次显示名称,只需在上面的行中多次附加。