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']; } ?> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |