php foreach里面的一个echo是html代码

时间:2014-08-12 17:26:57

标签: php html function foreach echo

我遇到了一些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>';

6 个答案:

答案 0 :(得分:1)

或者这个?...只是为了可读性。我必须跳出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>

答案 1 :(得分:0)

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";

答案 2 :(得分:0)

为什么这么复杂?试试这样:

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>';

答案 3 :(得分:0)

而不是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>';

答案 4 :(得分:0)

为了更明确一点,foreach是一个无法连接(echo"x". foreach () {} ."y";)到字符串中的关键字。它需要自己的块语句才能正确执行。

echo("<tag>");

foreach ($items as $item) {
    /* execute logic here */
}

echo("</tag>");

答案 5 :(得分:0)

下面我更正您的代码,希望它能正常工作。

    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之后开始新的回显。同样的逻辑在我的代码中也可以正常工作。希望也是。