使用PHP显示带有图像的表

时间:2014-02-21 10:23:07

标签: php

这是我的代码:

<?php
$items = array();
$images = node_files(request('nid')) ; 
$gallery_cover = db_fetch_row("node_meta","nid='".request('nid')."' AND name='gallery_image'");


foreach ($images as $key => $value)
{
$items[$key]['weight'] = $value['fid'].'_'.$value['weight'] ;
$items[$key]['image'] = '<a href="'.image_url($value['uri']).'" data-lightbox="gallery-image_'.$value['fid'].'">'.image_load($value['uri'],array("class"=>"img-thumbnail","thumbs"=>"small")).'</a>' ;
$items[$key]['title'] = '<span id="title_file_'.$value['fid'].'">'.$value['title'].'</span>' ;

$cover = "<a href='javascript:void(0);' onclick='javascript:gallery_cover(\"".$value['fid']."\"); return false;' id='gallery_cover_".$value['fid']."' data-toggle='tooltip' class='data-tooltip' data-placement='top' data-original-title='Top' id='tooltip1'><span class='btn btn-default btn-sm glyphicon glyphicon-eye-".(isset($gallery_cover['value']) && $gallery_cover['value']==$value['fid']?'open':'close')."'></span></a>" ; 
$edit = "<a href='javascript:void(0);' onclick='javascript:update_file(\"".$value['fid']."\"); return false;' data-toggle='tooltip' class='data-tooltip' data-placement='top' data-original-title='Modifier' id='tooltip1'>".IMG_EDIT."</a>" ; 
$delete = "<a href='javascript:void(0);' onclick='javascript:delete_added_image(\"".$value['fid'].'_'.$value['weight']."\"); return false;' data-toggle='tooltip' class='data-tooltip' data-placement='top' data-original-title='Supprimer' id='tooltip1'>".IMG_DELETE."</a>" ; 

$items[$key]['actions'] = $cover." ".$edit." ".$delete ;    
}
foreach($images as $key => $value)
{
if ($key % 4 == 0)
echo "<div class=\"row\">" ; 
    echo "<div class=\"col-md-3\">" ;
echo "<div class='thumbnail'><img src=".image_url($value['uri'])"/>
    <div class='caption'>
        <h4>".$value['title']."</h4> // <--- HERE THE ERROR SHOW
        <p>$cover $edit $delete</p>
    </div></div>" ;
echo "</div>" ;
}
?>

我尝试使用标题和操作$cover $edit $delete对4行图像进行dsiplay,此代码会生成错误。我哪里做错了? 这是错误:

syntax error, unexpected '"/> ' (T_CONSTANT_ENCAPSED_STRING), expecting ',' or ';'

由于

1 个答案:

答案 0 :(得分:4)

您:

  • 忘了关闭最后的支架
  • 忘记在字符串连接中添加一个点

-

foreach($images as $key => $value)
{
    if ($key % 4 == 0)
    echo "<div class=\"row\">" ; 
    echo "<div class=\"col-md-3\">" ;
    // added a dot in the line below (almost at the end)
    echo "<div class='thumbnail'><img src=".image_url($value['uri']) . "/>
        <div class='caption'>
        <h4>".$value['title']."</h4>
        <p>$cover $edit $delete</p>
        </div></div>" ;
    echo "</div>" ;
} // <--- HERE
?>

对于将来,我建议使用一些(任何)IDE,例如NetBeans(我最喜欢的)或Eclipse。它们是免费的开源非常强大的工具。如果你负担得起,你可以尝试使用PHPStorm,即恕我直言,这三者中最好的但不是免费的:)

而且对于未来的事情,我会建议PHP中的HTML输出的其他一些风格。如果您在循环中直接执行echo,为什么不在外部 PHP中执行此操作?像这样:

foreach($images as $key => $value)
{
    if ($key % 4 == 0)
    echo "<div class=\"row\">" ;

    // let's close the PHP block here
    ?>
    <div class="col-md-3">
        <div class="thumbnail">
            <img src="<?= image_url($value['uri']); ?>" />
            <div class="caption">
                <h4><?= $value['title']; ?></h4>
                <p><?= $cover . ' ' . $edit . ' ' . $delete; ?></p>
            </div>
        </div>
    </div>
    <? // let's open PHP block again
}

这种方法有很多优点:

  • HTML标记更清晰易读(帮助您避免语法错误)
  • IDE将使用选项卡
  • 格式化标记
  • IDE将为HTML语法着色
  • 如果您在标记中使用CSS类,IDE会将它们链接到CSS文件,这意味着它会在您编辑CSS文件时自动完成建议的类
  • 如果发生任何HTML语法错误,IDE将显示它们
  • 由于<?=,您总是可以在标记中注入PHP。它打开PHP流并执行echo。它与<? echo完全相同。