使用 AJAX post 将会话变量作为键值对传递到 PHP 文件

Pass session variable as Key-Value pair to PHP file using AJAX post

我有一个会话变量,比如说 $_SESSION['Current_User']。我想使用 AJAX 将它作为键值对传递给 URL。我有一些 HTML 输入如下: HTML 是:

<INPUT type='text' name='input_1' id="INPUT_1"></INPUT>
<INPUT type='text' name='input_2' id="INPUT_2"></INPUT>
<INPUT type='text' name='input_3' id="INPUT_3"></INPUT>
<BUTTON id="BUTTON_1" name="BUTTON_1_SUBMIT" value="SUBMIT_1" onclick="ajax_post()">Post</BUTTON>

<DIV id="Sub_Div_4"></DIV>

Javascript 是:

function ajax_post()   
    {   var AJAX = new ajaxFunction();
        AJAX.onreadystatechange = function()
        {   if((AJAX.readyState == 4) && (AJAX.status == 200))
                {   var PHP_REPLY = AJAX.responseText; 
                var RECI_EVE_D = JSON.parse(PHP_REPLY);     
                var STRING_jsonified = "|||data_1: " + RECI_EVE_D.data_1 + "||| data_2: " + RECI_EVE_D.data_2+ "||| data_3: "  + RECI_EVE_D.data_3;
                document.getElementById("Sub_Div_4").innerHTML = STRING_jsonified;
        }       }
    var INP_1 = document.getElementById("INPUT_1").value;
    var INP_2 = document.getElementById("INPUT_2").value;
    var INP_3 = document.getElementById("INPUT_3").value;
    
    var PARAM = "input_1=" + INP_1 + "&input_2=" + INP_2 + "&input_3=" + INP_3 ; 
    AJAX.open("POST", "PHP/PHP_SIMPLE_AJAX_POST.PHP", true);  
    AJAX.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    AJAX.send(PARAM);
    }

比方说,PHP 文件 PHP_SIMPLE_AJAX_POST.PHP 需要该会话信息,用户输入进行一些处理并发回 JSON。那么我的问题是,如何将现有的$_SESSION['Current_user']打包并发送到PHP文件中呢? 谢谢,非常感谢!!

如果你的意思是,如何使用任何当前存在的 $_SESSION 值的值,你可以试试这个:

<INPUT type='text' name='input_1' value="<?php echo $_SESSION['Current_user']['input_1']; ?>" id="INPUT_1"></INPUT>
<INPUT type='text' name='input_2' value="<?php echo $_SESSION['Current_user']['input_2']; ?>" id="INPUT_2"></INPUT>
<INPUT type='text' name='input_3' value="<?php echo $_SESSION['Current_user']['input_3']; ?>" id="INPUT_3"></INPUT>

更新

那么您应该在 PHP 脚本中这样操作 $_POST 值:

$_SESSION['Current_user']['input_1'] = $_POST['input_1'];
$_SESSION['Current_user']['input_2'] = $_POST['input_2'];
$_SESSION['Current_user']['input_3'] = $_POST['input_3'];