将php会话变量从jquery,ajax传递给PHP,感谢页面

时间:2015-07-02 17:06:18

标签: javascript php jquery ajax session

我一直试图想出这个问题。

我使用jquery ajax post使用home.php上的会话变量将表单数据发送到thankyou.php,然后将用户重定向(window.location.href ='')到thankyou带有home.php表单数据的.php打印在thankyou.php上。

此外,将转移到thankyou.php的数据通过电子邮件发送给用户。

我试图这样做,以便用户不会在thankyou.php的末尾看到查询字符串。

每当我测试它时,我的会话数据都不会结转,但是当发送电子邮件时,它会包含所有数据。

有人可以告诉我,如果我做错了吗? jQuery可以将会话数据传递到php页面吗?

这是我的代码:

home.php

<?php
session_start();
?>

<script>
var formData = $('form').serialize();
$.post('thankyou.php', formData, function(){
    $('form').submit();
    window.location.href = '/thankyou.php;
}); 
</script>

thankyou.php

<?php

session_start();

$_SESSION['name'] = $_POST['name'];
$_SESSION['email'] = $_POST['email'];
$_SESSION['phone'] = $_POST['phone'];

echo $_SESSION['name'];
echo $_SESSION['email'];
echo $_SESSION['phone'];

?>

3 个答案:

答案 0 :(得分:1)

$('form').submit(); - 第一次调用,将$ _POST变量存储到$ _SESSION

window.location.href = '/thankyou.php; - 第二次调用,用未定义的$ _POST替换$ _SESSION变量

$_SESSION['name'] = $_POST['name'];
$_SESSION['email'] = $_POST['email'];
$_SESSION['phone'] = $_POST['phone'];

尝试这样的事情:

if(isset($_POST) && $_POST) {
  $_SESSION['name'] = $_POST['name'];
  $_SESSION['email'] = $_POST['email'];
  $_SESSION['phone'] = $_POST['phone'];
}

echo $_SESSION['name'];
echo $_SESSION['email'];
echo $_SESSION['phone'];

答案 1 :(得分:1)

window.location.href = '/thankyou.php;'

之前丢失了另一个;

答案 2 :(得分:0)

您的会话没有错。您刚刚使用POST变量覆盖了会话变量。提交表单后,您的变量将无法正确发送。验证是否放置方法=&#34; POST&#34;在你的形式。