如何获取id在php中设置会话变量

时间:2015-10-19 04:48:40

标签: php

第一部分现在没有任何问题。

    <?php
  session_start();
  while($row = $result->fetch_assoc()){
    echo "<div id='name' style='margin-top:50px;'><h2>" . $row['name'] . "</h2>";
    echo "<a href='nextPage.php'><img class='pic' src='".$row['imageURL']."' data-id='".$row['id']."' height='100px'/></a></div>";
    echo "<div id='bio' style='border-bottom:1px solid #000;'><p>" . $row['bio'] . "</p></div>";
  }
?>

<script type="text/javascript">
  $(document).on('click', '.pic', function(){
    var id = $(this).data('id');
    $.ajax({
      type: 'POST',
      url: 'setSession.php',
      data: {myId: id}
    });
  });
</script>

点击图片后,我收到php错误消息,告诉我有一个未定义的变量。我目前将'setSession.php'作为一个单独的页面,不确定它是否应该是。

**Next Page**

    <?php
    session_start();
    include("connect.php");

    $result = mysqli_query($con, "select * from table");

    mysqli_close($con);
?>
<!doctype html>
<html>
    <head>
        <title></title>
    </head>

    <body>
      <div class="wrapper">
        <img src="<?php echo $row['imageURL'];?>" height="200px"/><br/>
        <div class="textSection" style="text-align:center;">
          <h2><?php echo $row['name'];?></h2>
          <p>
            <?php echo $row['bio'];?>
          </p>
        </div>
      </div>

    </body>
</html>

2 个答案:

答案 0 :(得分:1)

首先,您应该像这样在该页面中开始会话。

session_start();

然后像这样访问会话变量。

$_SESSION['your_key_here'];// this will return the value stored in session.

答案 1 :(得分:0)

将数据属性data-id放在img标记上,并将ids更改为class,因为ids应该是唯一的,如下所示:

<img class='pic' src='" . $row['imageURL'] . "' data-id='" . $row['id'] . "' height='100px'/></a></div>";

使用click handlerimg请求将class注册到AJAX,将data id设置为session变量,如下所示:

$(document).on('click', '.pic', function() {

   var id = $(this).data('id'); // get id value from data-id attribute
   $.ajax({
     type : 'POST',
     url : 'setSession.php',
     data : {
      myId : id
     },
     success : function(msg) { /* do something here for success request */ }
  });
});

最后。在setSession.php页面中:

<?php
  session_start();
  $_SESSION['id'] = $_POST['myId']; // this come from ajax request
  echo "something"; // and this will available on ajax success callback
?>