0

尝试通过使用 SESSION 将数据从一个页面发送到另一个页面时出现问题。在第 1 页中,我有一个类似的表格:

<form id="myForm"  name="myForm" action="" method="post">

<input name="item_1">......</input> // an input for a number
<input name="comment1">......</input> // an input for text

</form>

为了避免刷新,我使用

function submitOnclick()
{
    $.post("thisPage.php", $("#myForm").serialize());
    redirectToAnotherPage();
}

然后我尝试通过使用 SESSION 存储数据

function redirectToAnotherPage(){
    <?php $_SESSION['item_1']=$_POST['item_1'] ?>;
    <?php $_SESSION['comment1']=$_POST['comment1'] ?>;
    location.href='anotherPage.php';
}

但是 $POST 结果是空的,我尝试用数字 1 替换 $_POST['item_1'] 并且它确实将数字存储到 item_1,所以我认为这是因为 $_POST['item_1'] 有一些问题,我不知道为什么不提交/刷新就无法一页获取表单数据,

任何帮助将不胜感激,谢谢!

4

2 回答 2

0

我不认为你可以在你的 javascript 函数中设置一个 PHP 会话变量。PHP 与 javascript 是分开的,因为 PHP 是服务器端的,这些值将在页面首次预处理时被读取和分配。

无论是否调用 javascript 函数,都不会发生变化。

即使没有 AJAX<,只需一个简单的 PHP 表单即可。请看下面:

<form id="myForm"  name="myForm" action="anotherPage.php" method="post">

    <input name="item1">......</input>
    <input name="comment1">......</input>

</form>

要使用 javascript 提交,只需在您的函数上使用类似这样的内容:

function submitForm() {
    document.myform.submit();
}
于 2013-04-08T05:14:17.553 回答
0

问题是name您的输入与您的$_POST索引不同

你的输入:<input name="item1">

你的帖子索引:$_POST['item_1']

并且在 Js 中使用 PHP 函数也是不正确的方法,这个:

function redirectToAnotherPage(){
  <?php $_SESSION['item_1']=$_POST['item_1'] ?>;
  <?php $_SESSION['comment1']=$_POST['comment1'] ?>;
  location.href='anotherPage.php';
}

你需要$_SESSION直接在thisPage.php(ajax post url)中设置

编辑 :

不要使用serialize(),而是这样:

function submitOnclick()
 {
   $.post(
     "thisPage.php",
     {item_1 : $('input[name="item_1"]').val(),
      comment1 : $('input[name="comment1"]').val()
      }
   );
   redirectToAnotherPage();
 }

祝你好运 !!!

于 2013-04-08T05:30:08.207 回答