我有一些PHP输出的麻烦。我已经回应了一些HTML,并且工作正常!那些应该包含更多元素的组 - >我需要从每个组内的数据库中动态输出一些锚元素。这需要在html中发生,这已经是一个回声。我以为我可以把另一个foreach循环放在那里...我试过但我想不出来......我总是得到一个错误。
Dreamweaver告诉我,这部分
foreach($links as $item){echo $item;}
肯定是错的(语法错误),但我不知道如何正确地把它放在那里。
谢谢你的帮助!
echo '<li id="todo-'.$this->data['id'].'" class="todo">
<div class="group__name"><div class="text input_groupname">'.$this->data['text'].'</div>
</div>
<div class="group_more_button">more <i class="fa fa-arrow-circle-o-down"></i></div>
<div class="group_list_wrapper">
<div class="group__list_SortMe">'
'.foreach($links as $item){
echo $item;
}.'
'<div class="add_button">
<div class="plus open">
<span></span>
<span></span>
</div>
</div>
</div> <!-- group__list_SortMe-->
</div> <!-- group_list_wrapper-->
<div class="actions">
<a href="#" class="edit">Edit</a>
<a href="#" class="deleteICON">Delete</a>
</div>
</li>';
还是这个?...只是为了可读性。我必须跳出PHP才能使这些长字符串合乎逻辑。
<li id="todo-<?=$this->data['id']?>" class="todo">
<div class="group__name"><div class="text input_groupname"><?=$this->data['text']?></div>
<div class="group_more_button">more <i class="fa fa-arrow-circle-o-down"></i></div>
<div class="group_list_wrapper">
<div class="group__list_SortMe">
<?php
foreach($links as $item){
echo $item;
}
?>
<div class="add_button">
<div class="plus open">
<span></span>
<span></span>
</div>
</div>
</div> <!-- group__list_SortMe-->
</div> <!-- group_list_wrapper-->
<div class="actions">
<a href="#" class="edit">Edit</a>
<a href="#" class="deleteICON">Delete</a>
</div>
</li>
foreach
什么都不返回(AFAIK),你在你的echo
链接它不会做任何事情。完成echo
,并在新线路上开始foreach
呼叫。在那之后,开始一个新的echo
。像这样:
echo "blah blah this is a whole lotta text ";
foreach($links as $item){
echo $item;
}
echo " and this is some more text";
为什么这么复杂?试试这样:
echo '<li id="todo-'.$this->data['id'].'" class="todo">
<div class="group__name"><div class="text input_groupname">'.$this->data['text'].'</div>
</div>
<div class="group_more_button">more <i class="fa fa-arrow-circle-o-down"></i></div>
<div class="group_list_wrapper">
<div class="group__list_SortMe">';
foreach($links as $item){
echo $item;
}
echo '<div class="add_button">
<div class="plus open">
<span></span>
<span></span>
</div>
</div>
</div> <!-- group__list_SortMe-->
</div> <!-- group_list_wrapper-->
<div class="actions">
<a href="#" class="edit">Edit</a>
<a href="#" class="deleteICON">Delete</a>
</div>
</li>';
而不是echo
HTML,为什么不分开它?它有助于降低echo
的性能。
<li id="todo-<?php echo $this->data['id']; ?>" class="todo">
<div class="group__name"><div class="text input_groupname"><?php echo $this->data['text']; ?></div>
</div>
<div class="group_more_button">more <i class="fa fa-arrow-circle-o-down"></i></div>
<div class="group_list_wrapper">
<div class="group__list_SortMe">
<?php
foreach($links as $item)
{
echo $item;
}
?>
<div class="add_button">
<div class="plus open">
<span></span>
<span></span>
</div>
</div>
</div> <!-- group__list_SortMe-->
</div> <!-- group_list_wrapper-->
<div class="actions">
<a href="#" class="edit">Edit</a>
<a href="#" class="deleteICON">Delete</a>
</div>
</li>';
为了更明确一点,foreach是一个无法连接(echo"x". foreach () {} ."y";
)成字符串的关键字。它需要自己的块语句才能正确执行。
echo("<tag>");
foreach ($items as $item) {
/* execute logic here */
}
echo("</tag>");
下面我更正你的代码,希望它能正常工作。
echo '
<li id="todo-'.$this->data['id'].'" class="todo">
<div class="group__name"><div class="text input_groupname">'.$this->data['text'].'</div>
</div>
<div class="group_more_button">more <i class="fa fa-arrow-circle-o-down"></i></div>
<div class="group_list_wrapper">
<div class="group__list_SortMe">
';
foreach($links as $item){
echo $item;
}
echo '<div class="add_button">
<div class="plus open">
<span></span>
<span></span>
</div>
</div>
</div> <!-- group__list_SortMe-->
</div> <!-- group_list_wrapper-->
<div class="actions">
<a href="#" class="edit">Edit</a>
<a href="#" class="deleteICON">Delete</a>
</div>
</li>';
问题在于,你必须在foreach之前和foreach开始新的回声之后关闭回声。我的代码使用相同的逻辑。希望这也。