嗨朋友
我提供的代码显示与登录用户相关联的数据(moduleID& moduleName)。目前它显示了与用户登录时应该在屏幕上显示的moduleID相关联的特定html代码。我想实现一种方法来迭代值(循环中可能是if-else语句)以便特定的html代码i已经显示当用户有一个或多个moduleID附加到它们时显示。
这是我的主页演示.php
<?php
session_start();
//including the database connection file
include 'config.php';
$cuserID= $_SESSION['userID'];
//fetching data in descending order (lastest entry first)
//$result = mysql_query("SELECT * FROM users ORDER BY id DESC"); // mysql_query is deprecated
$result = mysqli_query($mysqli, "SELECT m.moduleID, m.moduleName
FROM modules m
JOIN courses c ON m.courseID = c.courseID
JOIN usersDemo u ON c.courseID = u.courseID
WHERE userID = '$cuserID'"); // using mysqli_query instead
//while($res = mysql_fetch_array($result)) { // mysql_fetch_array is deprecated, we need to use mysqli_fetch_array
while($res = mysqli_fetch_array($result)) {
echo "
<div id='loader-wrapper'>
<div id='loader'><div id='loader1'>
</div>
</div>
<p><a onclick='IS4439Function()'>IS4437</a></p>
</div>
";
}
?>
以下是附加到IS4437的moduleID
的html代码<div id="loader-wrapper">
<div id="loader"><div id="loader1">
</div>
</div>
<p><a onclick="IS4439Function()">IS4437</a></p>
</div>
以下是附加到IS4408的moduleID的html代码
<div id="loader-wrapper1">
<div id="loader"><div id="loader1">
</div>
</div>
<p><a onclick="IS4408Function()">IS4408</a></p>
</div>
因为我已经提到了我目前遇到的问题,这些是我已经尝试过的不同方法。
最初在将html嵌入homepageDemo.PHP中的while循环之前,我只是返回了moduleID&amp;与登录用户关联的moduleName为文本
<?php
session_start();
//including the database connection file
include 'config.php';
$cuserID= $_SESSION['userID'];
//fetching data in descending order (lastest entry first)
//$result = mysql_query("SELECT * FROM users ORDER BY id DESC"); // mysql_query is deprecated
$result = mysqli_query($mysqli, "SELECT m.moduleID, m.moduleName
FROM modules m
JOIN courses c ON m.courseID = c.courseID
JOIN usersDemo u ON c.courseID = u.courseID
WHERE userID = '$cuserID'"); // using mysqli_query instead
//while($res = mysql_fetch_array($result)) { // mysql_fetch_array is deprecated, we need to use mysqli_fetch_array
while($res = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>"."<a>".$res['moduleID']."</a>"."</td>";
echo "<td>"."<a>".$res['moduleName']."</a>"."</td>";
}
?>
然后我尝试遍历这些值以返回与每个单独的moduleID相关联的html代码
SWITCH STATEMENT ATTEMPT:
while($res = mysqli_fetch_array($result)) {
switch ($cuserID) {
case 1:
echo "
<div id='loader-wrapper'>
<div id='loader'><div id='loader1'>
</div>
</div>
<p><a onclick='IS4439Function()'>IS4437</a></p>
</div>
";
break;
case 2:
echo "
<div id='loader-wrapper'>
<div id='loader'><div id='loader1'>
</div>
</div>
<p><a onclick='IS4408Function()'>IS4408</a></p>
</div>
";
break;
case 7:
echo"
<div id='loader-wrapper'>
调用的函数
function IS4439Function() {
{
window.location.href = "global.php";
}
}
function IS4408Function() {
{
window.location.href = "isStrategy.php";
}
}
function IS4449Function() {
{
window.location.href = "webApp.php";
}
}
不幸的是,我试图实现的目标也不是。有什么想法吗?
答案 0 :(得分:0)
你真的很接近,而且我不确定断开连接的位置,但是你走了。您需要将硬编码的moduleID值(IS4439)替换为您已从数据库中提取的值。把你已经拥有的东西放在一起,它实际上只是归结为连接。
while($res = mysqli_fetch_array($result)) {
echo "
<div id='loader-wrapper'>
<div id='loader'><div id='loader1'>
</div>
</div>
<p><a onclick='" . $res['moduleID'] . "Function()'>". $res['moduleID'] . "</a></p>
</div>
";
}
我建议,不是调用不同的函数,而是考虑只调用一个函数,并将moduleID作为参数传递,然后在函数内进行相应的操作。
根据您的更新,您将拥有此...
while($res = mysqli_fetch_array($result)) {
?>
<div id='loader-wrapper'>
<div id='loader'><div id='loader1'>
</div>
</div>
<p><a onclick='redirectFunction("<?php echo $res['moduleID']; ?>");'><?php echo $res['moduleID']; ?></a></p>
</div>
<?php
}
?>
你的职能是......
function redirectFunction(moduleID)
{
var newLocation = "";
if(moduleID == "IS4439")
{
newLocation = "global.php";
}
else if(moduleID == "IS4408")
{
newLocation = "isStrategy.php";
}
else if(moduleID == "IS4449")
{
newLocation = "webApp.php";
}
window.location.href = newLocation;
}