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

时间:2016-01-15 01:08:31

标签: php ajax

我使用ajax将表单提交到处理服务器上的表单数据的php文件。但是我需要使用$ _GET访问URL中的变量,但是我得到了#34; Undefined index:"错误信息。我认为这是因为我在php文件中没有包含(或查看)当前的URL,因为我是用AJAX单独提交的。在这种情况下,我宁愿不使用会话变量。任何帮助表示赞赏。

网址 ../ completeAccount.php ACCTNUM = 433462524&安培;键代码= bdtF5ziKWJ

的Javascript

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

process.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.

1 个答案:

答案 0 :(得分:0)

您应该使用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