加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 会话变量从while循环发送特定变量

发布时间:2020-12-13 17:54:42 所属栏目:PHP教程 来源:网络整理
导读:我有这个简单的while循环,它从 mysql查询中检索数据并在我的主页上显示几个链接. 我想避免使用php get函数并将查询字符串添加到我的URL 我正在考虑使用会话变量,但我需要帮助,我很确定无法做到这一点. 当访问者点击while循环显示的几个链接时,该特定变量将在
我有这个简单的while循环,它从 mysql查询中检索数据并在我的主页上显示几个链接.

我想避免使用php get函数并将查询字符串添加到我的URL

我正在考虑使用会话变量,但我需要帮助,我很确定无法做到这一点.

当访问者点击while循环显示的几个链接时,该特定变量将在会话中设置.

在我的代码中,会话将始终发送最后一个var.

可以这样做吗?

<? session_start(); // Start Session Variables

    $result = mysql_query("my query");

    while($slice = mysql_fetch_assoc($result)){
        $url = $slice['url'];
        $name  = $slice['name']; ?>

        <a href="<? echo $url; ?>"><? echo $name; ?></a>

    <? } 

    $_SESSION['name'] = $name; // Store session data  ?>
您可以通过使用javascript函数来完成您的操作,该函数将使AJAX请求将所单击的名称发送到服务器.然后,服务器端代码将存储所需的会话变量
<? 
     session_start(); // Start Session Variables

    $result = mysql_query("my query");
    $name = '';
    while($slice = mysql_fetch_assoc($result)){
        $url = $slice['url'];
        $name  = $slice['name']; ?>

        <a href="<? echo $url; ?>" onclick='setSession(<? echo $url;?>);'><? echo $name; ?></a>

    <? }

现在,setSession将通过AJAX调用传递获得的值.然后可以通过简单的服务器端代码将其保存为会话URL

与包含链接的页面在同一页面上显示的JavaScript代码

<script type='text/javascript'>
    function getXMLHTTPRequest() {
    try {
    req = new XMLHttpRequest();
    } catch(err1) {
      try {
      req = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (err2) {
        try {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (err3) {
          req = false;
        }
      }
    }
    return req;
    }



      var http = getXMLHTTPRequest();
       function setSession(value) {
    var myurl = "session.php";  // to be present in the same folder
     var myurl1 = myurl;
      myRand = parseInt(Math.random()*999999999999999);
      var modurl = myurl1+"?rand="+myRand+"url"+value ; // this will set the url to be sent

      http.open("GET",modurl,true);
      http.onreadystatechange = useHttpResponse;
      http.send(null);
    }


    function useHttpResponse() {
       if (http.readyState == 4) {
        if(http.status == 200) {
          var mytext = http.responseText;
          // I dont think u will like to do any thing with the response
          // u can redirect the user to the req page (link clicked),once the session url has been setted
            }
         }
         else {
             // don't do anything until any result is obtained
            }
        } 
</script>

要存在的PHP服务器端代码,以将所需的url设置为会话值

<?php
session_start();
if($_SESSION['url']!=""){
unset($_SESSION['url']);   
$_SESSION['url'] = $_REQUEST['url'];  
}
else {
$_SESSION['url'] = $_REQUEST['url'];  
}
?>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读