我正在使用Smarty开展一个项目。 我想在我的网页上显示我的数组的结果,并用图像替换'1'结果,而用另一个替换'0'结果。 到目前为止,我可以得到我的结果,我希望我只需要做这个替换,我真的不知道它是否可能,如果是的话,我将如何设法做到这一点。 这是我的PHP代码的一部分:
for ($c=0; $c<count($aLPO); $c++){
$aPG['P_I'] = $aLPO[$c]['P_I'];
$aPG['P_L'] = $aLPO[$c]['P_L'];
$sGA = $aLPO[$c]['P_G_A'];
for ($i=0; $i<count($aGId); $i++){
if (strpos($sGA , $aGId[$i]) !== false){
$sGId = $aGId[$i];
$aPG[$aG[$sGId ]] = '1';
}
else{
$sGId = $aGId[$i];
$aPG[$aG[$sGId ]] = '0';
}
}
array_push($aPO, $aPG);
unset($aPG);
}
$smarty->assign("aLPO", $aPO);
我的.tpl代码的一部分(html / smarty)
...
<div id="display_table_Produit_Gammes">
<table cellpadding=0 cellspacing=0 class="tbl_datas" id="table_Produit" >
{if $iNbProduitsOptions == 0}
<thead>
<tr><th></th></tr>
</thead>
{else}
<thead>
<tr>
<th width='8%'>ID</th>
<th width='10%'>P_L</th>
{foreach from=$aLG item=g name=lst}
<th>{$g.G_L} ({$g.G_I})</th>
{/foreach}
</tr>
</thead>
<tbody>
{foreach from=$aLPO item=p name=lst}
<tr>
{foreach from=$p item=pval}
<td>{$pval}</td>
{/foreach}
</tr>
{/foreach}
</tbody>
{/if}
</table>
</div>
我需要更改的结果在我的标签中,因为它们是动态收费的,我在处理方式上有点困惑。
提前感谢您的帮助,如果您需要,请随时向我索取更多信息(因为我不是英语,因此很难理解该主题的目的,我希望它足够清楚)
答案 0 :(得分:1)
这里有更好的解释答案: 在smarty中你可以使用:
{if $pval eq '0'}
<img src="image0.jpg">
{else}
<img src="image0.jpg">
{/if}
如果使用javascript执行此操作,您可以写:
{foreach from=$p item=pval}
<td class="replace_this_{$pval}"></td>
{/foreach}
为了向td添加一个类,然后在javascript中添加:
// select elements:
var elems = document.getElementsByClassName("replace_this_0");
// replace the <td></td> with <td><img src="image0.jpg"></td>
for(var i= 0; i< elems.length; ++i)
{
elems[i].innerHTML = "<img src='image0.jpg'>";
}
第二张图片也一样。希望这会有所帮助。