gpt4 book ai didi

PHP "dynamic"菜单

转载 作者:行者123 更新时间:2023-11-28 02:53:09 25 4
gpt4 key购买 nike

我刚刚开始使用 PHP(就像今天一样)。我想使用 jquery 脚本创建一个可包含可变数量项目的可自定义菜单。

当我运行此程序时,出现错误。错误是:

Parse error: syntax error, unexpected T_VARIABLE in /home/s0urc3/public_html/files01/menu.php on line 5

感谢Chase 他的回答

index.php:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<head>
<?PHP
$script_url="http://files01.s0urc3.ismywebsite.com/jquery/nagging-menu/nagging-menu.js";
$menu_css="http://files01.s0urc3.ismywebsite.com/jquery/nagging-menu/style.css";
$links = array(
array("url" => "http://www.something1.com", "label" => "something"),
array("url" => "http://www.something2.com", "label" => "something2"),
array("url" => "http://www.something3.com", "label" => "something3"),
);
include("menu.php");
?>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
<title></title>
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon"/>
<link rel="stylesheet" type="text/css" href=".css"/>
</head>
<body>
<?=writeMenu($links, $menu_css, $script_url)?>
</body>
</html>

菜单.php:

<?
function writeMenu($links, $script_url, $menu_css){
$menu = '<link href=\"$menu_css\" type=\"text/css\">'
$menu = '<div id="navi">';
$menu .= '<div id="menu" class="default">';
$menu .= '<ul>';

foreach ($links as $item) {
$menu .= "<li><a href=\"".$item['url']."\">".$item['label']."</a></li>";
}

$menu .= "</ul>";
$menu .= "</div>";
$menu .= "<script type=\"text/javascript\" src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js\" charset=\"utf-8\"></script>";
$menu .= "<script type=\"text/javascript\" src=$script_url charset=\"utf-8\"></script>";

return $menu;
}
?>

感谢Chase为他的重新脚本

最佳答案

我想说我对jquery不太熟悉,所以我只会评论你的php使用。

首先,您需要在字符串周围使用引号,如下所示:print("<li><a href=$link_1_url>$link_1_label</a></li>")

然后还有一个问题,为什么你要使用这样的开关,然后复制相同的内容并添加一些内容。您可以按如下方式轻松完成:

if ($items  >= 1)
{
// print line 1
}

if ($items >= 2)
{
// print line 2
}
if ($items >= 3)
{
// print line 3
}

这将确保您不必一遍又一遍地复制相同的内容。可以使用如下的 switch 完成同样的事情,但这段代码更难理解:

$out = "";
switch ($items)
{
case 3:
$out = "line3" . $out;
case 2:
$out = "line2" . $out;
case 1:
$out = "line1" . $out;
print($out);
break;
}

如果您想知道它是如何工作的,请仔细查看并记住我只有一个break语句。不过,这更难理解,也不太清楚,所以不建议这样做。但是,由于每次更改的唯一内容是数字,因此您可以使用 for 循环,它就是为此目的而创建的:

for ($i = 0; $i < $items; $i++)
{
print("line " . $i);
}

现在你看,这更短、更容易,但非常清晰。

编辑:我错过了一件事:你在那里的一长串网址。编程时要学习的一件事是保留一些整齐的空白,甚至不清楚我们在这里谈论的是一个函数。看看我和你的代码...我的代码是可读的,而你的则不是,这都是由于我插入的空格而你没有...无论如何,你可能使用数组:

function printMenu ($urls)
{
foreach ($urls as $url)
{
print("<a href='" . $url . "'>Link!</a>");
}
}

// Now you can do:
printMenu(array("url1", "url2", "url3"));

关于PHP "dynamic"菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3326885/

25 4 0