Ajax POST,检查 PHP $_GET 然后 $_POST
Ajax POST, check PHP $_GET and then $_POST
在表单提交上使用以下 Ajax POST 函数(此处简化):
$form.on("submit", function (i) {
i.preventDefault();
var sendEmail = 1;
ValidateForm(sendEmail, "goSignup");
});
function ValidateForm(sendEmail, action) {
$.ajax({
type: "POST",
url: window.location.pathname,
dataType: "json",
data: {
ajaxRequest: 1,
sendEmail: sendEmail,
}
}
在我 post 之后,我想使用一个等于 1 的条件 GET 参数(即 https://www.example.com?test-parameter=1),然后如果它存在于 URL 中,则使用一个或另一个函数如果在我的 PHP:
中从 $_POST 接收到 ajaxRequest
public function __construct() {
$testingParameter = $_GET["test-parameter"] ?? '';
if (trim($testingParameter) == '1') { // if has get parameter equal
if (!empty($_POST['ajaxRequest'])) { // if JS postRequest has been posted
$this->handlePostRequests();
}
echo 'has get parameter';
} else { // else use old logic
if (!empty($_POST['ajaxRequest'])) {
$this->handleOtherRequests();
}
echo 'no get parameter';
}
}
问题:
我从 PHP 得到正确的回显,但是当我使用 Ajax 提交表单时,如果我使用 [=37],它仍然使用 handleOtherRequests();
而不是 handlePostRequests();
函数=] www.example.com?test-parameter=1.
这里可能会出现一些基本的 PHP 逻辑错误,如果有人能以此指导我朝着正确的方向前进,我将不胜感激。
url: window.location.pathname,
您的 Ajax 永远不会 POST 使用查询字符串将数据 URL ,因为您明确地采用 仅 路径名字.
也许您想要 location.href
。
在表单提交上使用以下 Ajax POST 函数(此处简化):
$form.on("submit", function (i) {
i.preventDefault();
var sendEmail = 1;
ValidateForm(sendEmail, "goSignup");
});
function ValidateForm(sendEmail, action) {
$.ajax({
type: "POST",
url: window.location.pathname,
dataType: "json",
data: {
ajaxRequest: 1,
sendEmail: sendEmail,
}
}
在我 post 之后,我想使用一个等于 1 的条件 GET 参数(即 https://www.example.com?test-parameter=1),然后如果它存在于 URL 中,则使用一个或另一个函数如果在我的 PHP:
中从 $_POST 接收到 ajaxRequestpublic function __construct() {
$testingParameter = $_GET["test-parameter"] ?? '';
if (trim($testingParameter) == '1') { // if has get parameter equal
if (!empty($_POST['ajaxRequest'])) { // if JS postRequest has been posted
$this->handlePostRequests();
}
echo 'has get parameter';
} else { // else use old logic
if (!empty($_POST['ajaxRequest'])) {
$this->handleOtherRequests();
}
echo 'no get parameter';
}
}
问题:
我从 PHP 得到正确的回显,但是当我使用 Ajax 提交表单时,如果我使用 [=37],它仍然使用 handleOtherRequests();
而不是 handlePostRequests();
函数=] www.example.com?test-parameter=1.
这里可能会出现一些基本的 PHP 逻辑错误,如果有人能以此指导我朝着正确的方向前进,我将不胜感激。
url: window.location.pathname,
您的 Ajax 永远不会 POST 使用查询字符串将数据 URL ,因为您明确地采用 仅 路径名字.
也许您想要 location.href
。