在JQuery中获取PHP会话值

Getting PHP session value in JQuery

本文关键字:会话 PHP 获取 JQuery      更新时间:2023-09-26

我有一个进度条和一个按钮

当它达到100%时,我使用JQuery AJAX来检查用户是否已经在数据库中有一个活动的礼品码。如果他没有,我生成一个新的礼品代码并将其插入数据库。

生成和插入工作正常。我的问题是,我需要在JQuery脚本中的用户帐户ID。我目前正在使用隐藏输入法,它每次都返回我的帐户ID 0,无论我使用哪个帐户。

这是主页面的代码:

<div id ="resultDiv" style="text-align:center;"></div>
 <input type="hidden" id="hdnSession" data-value="@Request.RequestContext.HttpContext.Session["ID"]" />

这是JQuery文件(我检查用户是否有使用AJAX的活动礼品码):

$(function() {
var timer = 0;
$('#code').click(function () {
    clearInterval(timer)
    var value = 0;
    timer = setInterval(function () {
        value++;
        $('.progress-bar').width(value + '%').text(value + '%');
        if (value == 100) {
            clearInterval(timer);
            var sessionValue= $("#hdnSession").data('value');
            $.post("checkcode.php", 
            {
                ID: sessionValue
            },
            function(data)
            {
                $("#resultDiv").hide().html(data).fadeIn(1000);
            });
        }
    }, 10);
  })
});

这是检查的。php文件

<?php
include_once ('connect.php');
if(isset($_POST['ID']))
{
if(!empty($_POST['ID']))
{
    $id = $_POST['ID'];
    $select_user = "SELECT * from giftcodes WHERE UserID='$id'";
    $query = mysqli_query($con, $select_user);
    $row = mysqli_num_rows($query);
    if(!$row) {
      $randomcode = substr(md5(uniqid(mt_rand(), true)), 0, 8);
      $insert_code = "INSERT INTO giftcodes (UserID, Giftcode) VALUES ('$id', '$randomcode')";
      $query = mysqli_query($con, $insert_code);
      echo'<br><hr><h1 style="color: #5cb85c;">Your generated gift code:</h1><br><pre><kbd style="background-color: #5cb85c; color: #000;">'.$randomcode.'<kbd></pre><hr><p class="small" style="font-weight:bold;">You can generate a new code in 24 hours.</p>';
    } else {
      echo 'You already have an active gift code!';
    }
  }
}
?>

所以问题是,var sessionValue= $("#hdnSession").data('value');每次返回0,尽管我确定用户$_SESSION['ID']已设置。如果我生成一个礼物代码,UserID每次都会被设置为0。

如果你的"main page"是一个php页面,你可以使用这个(从php获得$_SESSION['ID']值,并为隐藏的输入字段分配值

<div id ="resultDiv" style="text-align:center;"></div>
     <input type="hidden" id="hdnSession"  value="<?php echo $_SESSION['ID']; ?>" />

我可以在PHP文件中使用$_SESSION['ID'] ..我不知道我为什么要把它弄得这么复杂。对不起。