我的侧边栏元素生成的PHP函数就像那样
function makeSidebarEl ($side, $name, $lang, $db)
{
$title='title_'.$lang;
$txt='txt_'.$lang;
$query=$db->query("SELECT $title, $txt FROM sidebar WHERE side='$side' AND name='$name'");
$result=$query->fetch_array(MYSQLI_BOTH);
$title=makeTitle($result[$title], $lang, $db);
$txt=makeTxt($result[$txt], $lang, $db);
echo '<div class="nav">'.$title.$txt.'</div>'."\n";
}
但我得到的结果是这样的
<div class="nav"></div>
<div class="nav_1"><img border="0" src=core/design/img/left_nav.png alt="" height="25px"/></div>
...
我的意思是它在每个元素的开头打开和关闭<div class="nav"></div>
但事实上函数必须在这个div中回显结果:
echo '<div class="nav">'.$title.$text.'</div>'."\n";
如何解决这个问题?
更新
function makeTitle($title) {
echo '<div class="nav_1"><img border="0" src=core/design/img/left_nav.png alt="" height="25px"/></div>
<div class="nav_2">'.$title.'</div>
<div class="nav_3"><img border="0" src=core/design/img/left_nav.png alt="" height="25px"/></div>
<div style="clear:both;"></div>';
}
function makeTxt($txt) {
echo '<div id="parts" class="parts_txt">'.$txt.'</div>';
}
答案 0 :(得分:2)
您需要将echo
替换为return
makeTitle
和makeTxt
答案 1 :(得分:2)
makeTitle()
和makeText()
应return
字符串而不是echo
字符串。
就像现在一样,他们echo
在调用它们时发送文本并返回NULL
,然后在调用echo '<div class="nav">'.$title.$txt.'</div>'."\n";
时将其连接成字符串,即该行的计算结果为{{ 1}}