0

こんにちは、初心者の質問です。プログラミング初心者なのでお手柔らかにお願いします。

JavaScript を使用して複数のセッション変数を投稿しようとしているので、後で複数の場所で PHP でそれらを使用できます。

私のindex.phpファイル

<?php
   session_start();
?>
<!DOCTYPE html>
<html>
   <head>
      <title></title>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <?php 
         if ((empty($_SESSION['function1Val'])) & (empty($_SESSION['function2Val'])) && (empty($_SESSION['jsStatus']))) {
            echo '<script type="text/javascript" src="vals.js"></script>
            <script type="text/javascript">
            var session=false;
            var jsStatus;
            var function1Val;
            var function2Val;
            </script>';
         } else {
            echo '<script type="text/javascript"> 
            var session=true; var jsStatus=' . $_SESSION['jsStatus'] . ';
            var session=true; var function1Val=' . $_SESSION['function1Val'] . ';
            var session=true; var function2Val=' . $_SESSION['function2Val'] . ';
            </script>';
         }
      ?>
   </head>
   <body>
    <?php

echo $jsStatus;
echo $function1Val;
echo $function2Val;

session_destroy ();
         ?>
   </body>
</html>

私の vals.js ファイル

window.onload = function() {
    // if there is no session (session = false)
    if (!session) {

        // Set value to variable jsStatus
        jsStatus = 'enabled';

        // Call function to get function1
        function1();

        // Call function to get function2
        function2();

        // Make ajax call to php page to set the session variable
        setSession();
    }
}

function function1() {

    // code to get value goes here
    function1Val = 'result1';
}

function function2() {

    // code to get value goes here
    function2Val = 'result2';
}

function setSession() {
    var xmlhttp;
    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        // Reload the page
        window.location.reload();
        }
      }
    xmlhttp.open("POST","session.php?function1Val=" + function1Val,true);
    xmlhttp.send();

    // like this I want to transfer other values of 'function2Val' and 'jsStatus'
}

私の session.php ファイル

<?php
    session_start();

    // check if it is already set if you like otherwise:
    $_SESSION['function1Val'] = $_REQUEST['function1Val'];
    $_SESSION['function2Val'] = $_REQUEST['function2Val'];
    $_SESSION['jsStatus'] = $_REQUEST['jsStatus'];
?>

コードが乱雑であることはわかっていますが、正しい構文の書き方がわかりません。実際に単一の変数コードを変更しようとしましたが、失敗しました。したがって、助けが必要です。

アイデアは、さまざまな JavaScript 関数から派生したさまざまな値をセッションに投稿して、PHP で使用できるようにすることです。

助けてください。

アップデート:

上記の変数の値は JavaScript のみを使用して計算できるため、このようにする必要があります。

4

1 に答える 1

1

パラメータをアンパサンド (&) で連結する必要があります。

この行を使用

xmlhttp.open("POST","session.php?function1Val=" + function1Val+"&function2Val=" + function2Val+"&jsStatus=" + jsStatus,true);

ところで:AJAXリクエストにはjQueryまたは同様のライブラリを使用することをお勧めします。さらに、JSON を使用してデータを交換するか、キー名が変数のものである Javascript 配列を使用します。

于 2013-08-06T16:38:23.663 に答える