循环遍历数组并为每个元素打印HTML dinamcly

时间:2014-05-29 15:43:08

标签: php html

我正在尝试遍历包含对象的数组,并将我需要的数据打印到HTML中。这个HTML需要打印我的第一个元素,之后"创建"一个新的HTML显示我的第二个元素,依此类推......

这是我的PHP函数,我查询数据库:

public function getCuponesUser(){
    $db = JFactory::getDbo();
    $user = JFactory::getUser()->id;
    $query = 'SELECT * FROM #__cuphoneo_subscripcion as cs LEFT JOIN #__k2_items as k2i ON k2i.id = cs.item_id WHERE cs.user_id='.$user.' GROUP BY cs.item_id';
    $db->setQuery($query);
    $resultado = $db->loadObjectList();

    return $resultado;
}

这是$resultado返回的内容:http://pastebin.com/PSX7KMBq

这是我的HTML / PHP代码,我正在尝试打印检索到的数据:

<div class="panel-group" id="accordion">
    <div class="panel panel-info">
 <?php  
    $model = $this->getModel();
    $cuponesUsuario[] = $model->getCuponesUser();

    foreach($cuponesUsuario as $valor){
    ?>

 <div class="panel-heading" data-toggle="collapse" data-parent="#accordion" data-target="#collapse1">
    <div class="panel-heading-left">
        <h4 class="panel-title accordion-toggle">
            Data 1
        </h4>
     </div>
     <div class="panel-heading-right">
        <h4 class="panel-title">
            Data 2
        </h4>
     </div>
</div>
<div id="collapse1" class="panel-collapse collapse">
  <div class="panel-body">
    <div class="panel-left">
        <div class="panel-image">
            Data 3
        </div>
        <div class="panel-fecha">
            <span class="label label-info">Data 4</span>
        </div>
    </div>

    <div class="panel-right">
        <div class="panel-desc">
        Data 5
        </div>
        <div class="panel-boton-canjear">
            <input class="btn" type="button" value="Canjear"/>
        </div>
    </div>
  </div>
</div>
    <?php } ?>

如果数据1,数据2,数据3等等,我需要打印出Query可能返回的不同值。

编辑:我很确定我还必须使用for但不太确定如何执行此操作:P

2 个答案:

答案 0 :(得分:2)

如果$resultado已经表示要循环的数组,那么这是错误的:

$cuponesUsuario[] = $model->getCuponesUser();

这样做:

$cuponesUsuario = $model->getCuponesUser();

foreach循环中,您可以访问以下数据:

<?php echo $valor->title; ?> 

答案 1 :(得分:1)

问题在于您使用此语法:

$cuponesUsuario[] = //...

$var[]=语法将对象附加到数组$var。因此,$ cuponesUsario是一个包含一个元素的数组,而一个元素就是您的实际数据结构。当您在数组上调用foreach()时,它只执行一次,因为数组中只有一个元素。

相反,删除[]并直接将结果分配给$cuponesUsario,因为它已经是数组数据。