我有两种使用 ajax 发送数据的表单。两种形式都有自己的脚本,我认为我能够在单独的脚本上访问相同的 $_POST[]
变量,但这不起作用。我尝试使用 session_start()
和 include_once
,由于某种原因,我无法弄清楚为什么变量没有从脚本传递到脚本。我已经花了三天时间研究解决方案,因此如果您知道我做错了什么或有替代方案,请告诉我,谢谢。
JavaScript。
$('.test-input').load("test.php", {
'sendTo':sendTo,
'carrier':carrier,
'testSubmit':testSubmit
})
$('#error-display').load("textsms.php", {
'date':scheduleDate,
'firstname':firstName,
'number':number,
'message':message,
'time':time,
'service':service,
'submit':submit
})
测试.php
if (isset($_POST['testSubmit'])) {
$sendTo = $_POST['sendTo'];
$carrier = $_POST['carrier'];
$sendToInvalid = false;
$testEmpty = false;
$sendTo = "";
if (!preg_match('/^\(?\b\d{3}[-.)\s]?\s?\d{3}[-.)\s]?\d{4}\b$/', $sendTo) and $sendTo !== '') {
$sendToInvalid = true;
} elseif (empty($sendTo) || empty($carrier)) {
$testEmpty = true;
} else {
$sendTo = preg_replace('/[-.()\s]/','',$sendTo).$carrier;
$_SESSION['sendTo'] = $sendTo;
}
}
尝试将 $sendTo
传递给下面的 textsms.php。
else {
include 'test.php';
$sendTo = $_SESSION['sendTo'];
$number = preg_replace('/[-.()\s]/','',$number);
$number = "(".substr($number,0,3).") ".substr($number,3,3)."-".substr($number,6,4);
if ($sendTo !== "contactme@aboutryansam.com") {
$header = $name."\r\n#: ".$number;
$sendMsg = $userMsg."\r\nOn: ".$date.$time."\r\nService: ".$service;
//mail($sendTo, "You win!", $sendMsg, $header);
echo $sendTo;
echo "it worked";
}
最佳答案
当然,在初始化ajax的页面上,包含session_start()
内的“header.php”文件。 test.php 中的 include_once('header.php')
也是如此。它应该可以解决问题。
现在这不是一个好的做法,我更好建议您使用cookie并通过$_COOKIE
访问它们。更好的是,使用一个可以处理 cookie 的库,例如 this one 。 JQuery 还具有非常好的 cookie 管理。
关于php - 使用ajax如何将变量传递给两个不同的php脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49733423/