我正在尝试实现仪表板类型的系统。并且在导航菜单项中传递变量时遇到问题。
首先,用户从工作区列表中选择“工作区名称”。
该链接会将用户重定向到projects.php?workspaceid=xxxxxx
现在在project.php
内,有侧栏(静态)和其他选项,如
projectsettings.php
,credentials.php
。
我想在每个子菜单项中传递变量workspaceid。
与projectsettings.php?workspaceid=xxxxxx
或credentials.php?workspaceid=xxxxxx
我该怎么办?
更新: 我想我对这个问题还不太清楚。
首先,用户来workspaces.php
它看起来像
![工作区选择表] http://i.stack.imgur.com/eBtSm.png
然后例如他们从表中选择“Internet Explorer 7”。
链接会将他们带到project.php?workspaceid=IE7
看起来像 ![项目仪表板] http://i.stack.imgur.com/EfdK1.png
此处所有菜单(数据菜单,数据变量,setting.php)都应具有工作空间变量。
答案 0 :(得分:0)
编辑答案: 设置workspaceid后,您需要设置会话
<?php
session_start();
if (isset($_SESSION['workspaceid'])){
//do what you need with this info
}
else if (isset($_GET['workspaceid'])){
//lets set the session
$_SESSION['workspaceid'] = trim(strip_tags($_GET['workspaceid']));
}
else {
//do nothing
}
//with this method there is no need to pass the workspaceid via url
?>
原始答案:
回显您需要的每个链接中的变量。
<a href="projectsettings.php?workspaceid=<?php echo $_GET['workspaceid']; ?>">link text</a>
使用get变量你应该小心。我经常在标题中检查并清理它们。因此,更高级的方法如下
<?php
if (isset($_GET['workspaceid']){
$workspaceid = trim(strip_tags($_GET['workspaceid']));
}
?>
然后在链接中检查isset
<a href="projectsettings.php?workspaceid=<?php echo isset($workspaceid)?$workspaceid:''; ?>">link text</a>
答案 1 :(得分:0)
您可以执行以下操作:
<?php
if(isset($_GET['workspaceid']))
$workspaceid = htmlspecialchars($_GET['workspaceid']);
else
$workspaceid = '';
$query = "SELECT * FROM table WHERE workspaceid = ?";
if($stmt = $mysqli->prepare($query)){
$stmt->bind_param('i',$workspaceid);
$stmt->execute();
$result = $stmt->get_result();
while($row = $result->fetch_assoc()){
$variablename = $row['columnname']; //put your own in here
}
$stmt->free_result();
$stmt->close();
}else die("Query failed to prepare");
您可以使用credentials.php?workspaceid=xxxxxx"