我想使用php(adodb)和smarty在jquery函数中打印图像地址列表。
我需要这个:
$.lightbox(["/media/photos/tmb/4.jpg", "/media/photos/tmb/3.jpg", "/media/photos/tmb/6.jpg"]);
我尝试这个(只是简单的测试):
{/literal} {if $photos} $.lightbox(["{"\", \""|implode:$photos}"]); {/if}{literal}
结果是:
$.lightbox(["Array", "Array", "Array", "Array", "Array", "Array", "Array", "Array", "Array", "Array", "Array"]);
实际上,我需要用图像地址替换数组。
图像地址(动态循环):
{$relative}/media/photos/tmb/{$photos[i].PID}.jpg
没有jquery函数,我用这种方法列出图像:
{if $photos}
{section name=i loop=$photos}
{$relative}/media/photos/tmb/{$photos[i].PID}.jpg
{/section}
{/if}
php代码:
$sql = "SELECT PID, caption FROM photos WHERE AID = " .$aid. " AND status = '1' LIMIT " .$limit;
$rs = $conn->execute($sql);
$photos = $rs->getrows();
$smarty->assign('photos', $photos);
如何根据我的需要打印列表?我可以吗?
答案 0 :(得分:1)
最简单的方法是将数组分配给模板,然后使用json_encode()
。我不经常使用Smarty,但我相信你可以这样做:
{$yourImageArray | json_encode}
编辑现在您终于告诉了我们您的数组包含的内容:
数组([0] =>数组([0] => 13 [PID] => 13 [1] => [caption] =>)[1] =>数组([0 ] => 14 [PID] => 14 [1] => [caption] =>)[2] =>数组([0] => 15 [PID] => 15 [1] => [caption] =>)[3] =>数组([0] => 30 [PID] => 30 [1] => salam [caption] => salam)[4] =>数组([0] => 17 [PID] => 17 [1] => [caption] =>)[5] =>数组([0] => 31 [PID] => 31 [1] => [caption] =>)[6] =>数组([0] => 32 [PID] => 32 [1] => [caption] => ;)[7] =>数组([0] => 33 [PID] => 33 [1] => [caption] =>)[8] =>数组([0] => ; 34 [PID] => 34 [1] => [caption] =>))
这是您需要做的事情。在您的控制器中:
$photoFileNames = array();
foreach ($photos as $photo) {
$photoFileNames[] = $photo['PID'];
}
$smarty->assign('photoFileNamesJSON', json_encode($photoFileNames));
在模板中,您可以通过$photoFileNamesJSON
访问数组。下次发布问题时,请从一开始就包含所有信息。如果您对问题有所了解,那么提供更具体的答案会更容易。