我正在尝试将会话变量存储到普通变量并使用ajax我需要将值发送到下一页但它在ajax代码中给出了一个错误。以下是我的代码
的index.php
$OTP = $_SESSION['smsgatewaycenterotp'];
echo $OTP;
Ajax功能
<script type="text/javascript">
$('#btnonOtp').click(function()
{
var otp = $('$OTP').val();
$.ajax({
url: "sms.php",
method:'POST',
data:
{mobile: $('#mobile').val(),
otp:otp},
success: function(msg)
{
alert('OTP Sent');
console.log(msg);
}
});
});
</script>
Sms.php
<?php
include 'send.php';
session_start();
var_dump($_POST);
console.log(msg);
echo $_POST['mobile'];
$OTP = $_POST['otp'];
$number = $_POST['mobile'];
//$text = 'Hi There, how are you?';
$sms_api_result = sms_Send($number, 'Please do not share the one time password with anyone. Your One Time password is: '.$OTP,$debug);
?>
任何人都可以帮我解决这个问题。
答案 0 :(得分:0)
var otp = $('$OTP').val();
做什么?如果您希望读取PHP $OPT
值,则根本不会。
您没有在ajax中引用PHP $OPT
值。
尝试:
$.ajax({
url: "sms.php",
method:'POST',
data:
{mobile: $('#mobile').val(),
otp: <?php echo $OPT; ?>},
success: function(msg)
{
alert('OTP Sent');
console.log(msg);
}
});
这意味着当您发布到sms.php
时,它会在帖子数据中包含opt:
,其中包含$OPT
的值。
您的脚本sms.php
将能够在进行ajax调用时阅读$_POST['opt']
。
顺便说一下 - sms.php
中还有其他错误,例如console.log
行 - 这是一个javascript函数,在PHP中不起作用(你仍然在{ {1}}标签)
要对此进行测试,请修改您的<?php ?>
以便只包含此代码:
sms.php
当您发出ajax请求时,您应该弹出一个(<?php
if (isset($_POST['opt'])) {
echo $_POST['opt'];
} else {
echo "opt not set<br>";
var_dump($_POST);
}
?>
);在浏览器中。如果您打开控制台,它应该显示alert('OPT Sent'
的值,或者显示未设置的消息。如果它显示“opt not set”,则表示你的ajax调用中的这一行没有发送正确的值:
$_POST['opt']
但是,您可以通过查看源代码来解决Javascript所在的位置(otp: <?php echo $OPT; ?>
)。如果它为空白或没有值,则index.php
上的帖子数据将无法使用。
您还必须了解没有“下一页”。您发布的代码只会发出从sms.php
到index.php
的ajax发布请求。它不会“加载”sms.php
,也不会将用户重定向到那里。由于ajax成功函数中的sms.php
语句,您在此处看到的唯一输出是在浏览器控制台中。
答案 1 :(得分:0)
如果您想在同一网站的其他页面中获取会话值,则可以使用$_SESSION
变量获取该值。不需要ajax。以下是示例
第2页
session_start();
$session_value = '';
if(isset($_SESSION['smsgatewaycenterotp'])){
$session_value .=$_SESSION['smsgatewaycenterotp']; // if it is string
}
echo $session_value; // Out put some value
isset() php内置函数将检查会话值,因此如果有值,那么if语句将为true,并且该值将被分配给$session_value
变量,否则变量将是空的。
答案 2 :(得分:0)
启动会话后,可以在项目的每个页面中访问Session变量
session_start();
了解如何处理$ _SESSION的存储使用,请阅读以下内容: http://php.net/manual/en/book.session.php