在JQuery中获取PHP会话值

时间:2015-10-22 19:22:46

标签: javascript php jquery ajax

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

当它达到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.

2 个答案:

答案 0 :(得分:1)

我可以在PHP文件中使用$ _SESSION [&#39; ID&#39;] ..不知道为什么我试图让这个变得如此复杂。遗憾。

答案 1 :(得分:1)

如果你的&#34;主页&#34;是一个php页面,你可以使用它(从php获取$ _SESSION [&#39; ID&#39;]值并分配给隐藏输入字段的值

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