如何在运行单独的 php 文件(不使用会话变量)时访问我的 URL 中的 $_GET 变量


How to access the $_GET variables in my URL when running a separate php file (without using Session variables)

我正在使用ajax将我的表单提交到一个php文件,该文件在服务器上处理表单数据。但是我需要使用 $_GET 访问 URL 中的变量,但我收到"未定义的索引:"错误消息。我认为这是因为当前 URL 未包含在(或查看)在 php 文件中,因为我使用 AJAX 单独提交了它。在这种情况下,我宁愿不使用会话变量。任何帮助,不胜感激。

网址../completeAccount.php?acctnum=433462524&keyCode=bdtF5ziKWJ

爪哇语

formData = $(formID).serializeArray();
$.ajax({
    url  : "process.php",
        type: 'POST',
        data : formData,
        success: function(resp) {
            //success code
        }
});

过程.php

$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$newpass = $_POST['newpass'];
$newpass2 = $_POST['newpass2'];
$acctnum = $_GET['acctnum'];
$keyCode = $_GET['keyCode'];
//use variables to process data etc.

你应该用你的javascript获取参数,并将它们附加到formData。获取 URL 参数的代码可能如下所示:

function getParameterByName(name) {
    name = name.replace(/['[]/, "''[").replace(/[']]/, "'']");
    var regex = new RegExp("[''?&]" + name + "=([^&#]*)"),
        results = regex.exec(location.search);
    return results === null ? "" : decodeURIComponent(results[1].replace(/'+/g, " "));
}

接下来,只需将其附加到formData

formData = $(formID).serializeArray();
formData.push({name: 'acctnum', value: getParameterByName('acctnum')});

请注意,acctnum将在POST中,而不是在GET中!