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 の結果は空です。$_POST['item_1'] を数字の 1 に置き換えようとしましたが、その数字が item_1 に格納されたので、$_POST['item_1'] に問題があるためだと思います。送信/更新せずに1ページでフォームデータを取得できない理由がわからない、

どんな助けでも大歓迎です、ありがとう!

4

2 に答える 2

0

JavaScript関数内でそのようなPHPセッション変数を設定できるとは思いません。PHP はサーバーサイドであるため、PHP は JavaScript とは別のものです。これらの値は、ページが最初に前処理されるときに読み取られて割り当てられます。

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';
}

(ajax投稿URL)$_SESSIONに直接設定する必要がありますthisPage.php

編集 :

を使用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 に答える