Php 带变量的导航菜单

Php 带变量的导航菜单,php,drop-down-menu,menu,html-lists,uinavigationbar,Php,Drop Down Menu,Menu,Html Lists,Uinavigationbar,我正在尝试实现一种仪表板系统。以及在导航菜单项中传递变量时出现问题 首先,用户从工作区列表中选择“工作区名称”。 该链接将用户重定向到projects.php?workspaceid=xxxxxx 现在在project.php中,有一个侧栏(静态)和其他选项,如 projectsettings.php,credentials.php 我想在每个子菜单项中传递变量workspaceid。 例如projectsettings.php?workspaceid=xxxxxx或credentials.ph

我正在尝试实现一种仪表板系统。以及在导航菜单项中传递变量时出现问题

首先,用户从工作区列表中选择“工作区名称”。 该链接将用户重定向到
projects.php?workspaceid=xxxxxx

现在在
project.php
中,有一个侧栏(静态)和其他选项,如
projectsettings.php
credentials.php

我想在每个子菜单项中传递变量workspaceid。 例如
projectsettings.php?workspaceid=xxxxxx
credentials.php?workspaceid=xxxxxx

我怎样才能做到

更新: 我想我对这个问题很不清楚

用户首先进入
workspace.php
看起来像

!![工作区选择表]

然后,例如,他们从表中选择“InternetExplorer7”。 链接将把他们带到
project.php?workspaceid=IE7

看起来像 ![项目仪表板]

在这里,所有菜单(数据菜单、数据变量、setting.php)都应该有工作区变量

编辑答案: 设置工作空间ID后,需要设置会话

<?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']));
    }
?>

您可以执行以下操作:

<?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");

你能发布一些代码吗?谢谢你的回复。对于workspaceid,未修复。它是来自数据库的变量。所以结构是workspace selection=>Project dashboard..在该仪表板中,所有内容都是针对该仪表板的。我更新了我的答案,向您展示了如何使用mysqli语句调用它。事实上,我已经有了如上所示的预定义菜单,只需在itThanks Smith中传递项目id即可..是的;这就是我试图实现的…但问题是taht变量只从workspace.php传递到project.php一次,但我想在“project.php”仪表板中的任何地方都使用相同的变量。是的…我明白了。我可以创建多个会话吗?如果我想同时打开两个项目。如果你想让一个用户打开多个项目,你需要在$\u会话中排列工作区id。然后在每个页面加载上循环它们,以获得您需要的内容。Ohkay..我将对此进行研究。。另一个快速问题..如何传递这样的变量..它们传递
<?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");