我道歉,这看起来不对,这是我第一次在这个网站上提问。
我正在使用html,css和php创建一个网页。具体来说,我正在尝试使用数据库中的信息在我的页面上创建子导航链接。
这是我的代码:
foreach ($subArr as $sub => $result)
{
if (mysql_num_rows($result) > 0)
{
$resultString .= '<a id="$sub" style="cursor: poimter; color: #0076cf;" href="$sub">'.' | '.$sub.' | '.'</a>';
}
}
$ subArr是一个子类别数组,我希望用户能够点击具有子类别名称的链接,并将它们带到同一页面的那一部分。截至目前,它所做的只是在所有子类别名称下创建一个巨型链接,而不是创建每个单独的链接。
显然我需要某种循环,但我不知道如何查看$ resultString以更改锚ID和href。
非常感谢任何帮助!!
答案 0 :(得分:0)
(主题,但很重要)
你有一个错字,它应该是:
style="cursor: pointer; ..."
而不是:
style="cursor: poimter; ..."
答案 1 :(得分:0)
您的代码中存在错误。
你把变量放在''
中,php不会解析它以获得你需要将变量放在""
中的正确结果。
foreach ($subArr as $sub => $result)
{
if (mysql_num_rows($result) > 0)
{
$resultString .= '<a id="'.$sub.'" style="cursor: pointer; color: #0076cf;" href="'.$sub.'"> | '.$sub.' | </a>';
}
}
此外,与href具有相同的ID看起来很奇怪。
我注意到你使用的mysql_ *函数被删除了,将来会被删除。请考虑使用 PDO 或 MySQLi 。
答案 2 :(得分:0)
foreach ($subArr as $sub => $result)
{
if (mysql_num_rows($result) > 0)
{
$resultString = '<a id="$sub" style="cursor: pointer; color: #0076cf;" href="$sub">'.' | '.$sub.' | '.'</a>';
}
$resultstring="";
}
答案 3 :(得分:0)
你似乎走在正确的轨道上,但有一些事情混乱了。
菜单强>
首先在制作菜单时要使用unordered list
,然后使用CSS设置样式。 basic example of this是:
<ul class="menu">
<li><a href="test">Test</a></li>
<li><a href="test2">Test 2</a></li>
<li><a href="test3">Test 3</a></li>
</ul>
然后使用以下CSS
设置样式ul.menu, ul.menu * {
list-style: none;
padding: 0;
margin: 0;
}
ul.menu {
width: 100%;
height: 20px;
background: #ccc;
padding: 5px 0; /* Add padding top and bottom */
}
ul.menu > li {
height: 20px;
line-height: 20px;
float: left;
}
/* Make a tag fill the entire LI so users can click
anywhere, not just on the text. */
ul.menu > li > a {
display: block;
padding: 0 10px; /* Add padding between items */
color: #000;
text-decoration: none;
}
ul.menu > li > a:hover, ul.menu > li > a:active {
background: #000;
color: #FFF;
}
/* Add divider between items, except last item (Does not work with earlier versions of IE) */
ul.menu > li:not(:last-child) {
border-right: 1px solid #000;
}
PHP循环
首先是一张纸条。您使用的是mysql
,depreciated
。这意味着在PHP版本的某个时间很快就不再可用了。很多人建议你学习PDO。就个人而言,我更喜欢MySQLi而不是准备好的陈述,但这只是我的偏好。要么是好的,要么学习其中一个。
现在循环播放。你似乎在循环中检查你的mysql查询的结果,这是错误的。我猜你上面有一个查询,它将结果加载到$ subArr。在将它们加载到$ subArr之前,您需要调用mysql_num_rows
。
如上所述将循环应用到列表后,循环本身就可以了。你的最终代码看起来应该是这样的。注意,我在我的例子中使用了MySQLi,我建议你也这样做,尽管如果你愿意的话,将它转换为MySQL应该不会太难。
<?php
$subArr = array();
$query = "SELECT something FROM somewhere";
$result = $mysql->query($query);
if($result->num_rows) {
while($row = $result->fetch_assoc()) { //I personally prefer fetch_assoc over the others, but fetch_row or fetch_array are both fine here too.
$subArr = $row;
}
}
//Lets output the menu
$resultString .= '<ul class="menu">';
foreach($subArr as $sub => $result) {
$resultString .= '<li><a href="' . $result['url'] . '">' . $result['name'] . '</a></li>'
}
$resultString = '</ul>';
作为最后一点,您不需要在标记上放置cursor: pointer
,默认情况下它具有该样式。
我希望这能为你解决一些问题。