首先,各位大神,咱们就不纠结在应该不应该把php代码嵌入smarty模板中这类问题了,好不?因为我也是在别人代码上增加功能,只要能快速解决问题,啥办法都行。
问题描述:
在表格中,采用foreach的方式从$items读取每个记录,并且在表格中每行显示若干关键词相应的内容。$items是来自于后端php代码处理的结果。现在我需要在显示某个关键词内容时加个判断,读取相应内容,并且做个小链接。
代码如下:
{foreach $items as $item}
{strip}
。。。。。。。。。。。。。。
。。。。。。。。。。。。。。
{if $item->kind == "folder"}
<td class="name"><p><a href="/Views/Regions/{$item->id}">{$item->name}</a></p></td>
{elseif $item->type != "link"}
<td class="name"><p><a href="/Regions/Files/Download/{$item->id}">{$item->name}</a></p></td>
{else}
{$link_content=""}
{$this_id=$item->id}
{$search_link_query="select * from archive.file where id='$this_id'"}
{$con = mysqli_connect("localhost","root","root")}
{$result = mysqli_query($con,$search_link_query)}
{mysqli_close($con)}
{$row=mysqli_fetch_row($result)}
{$link_content=$row[8]}
<td class="name"><p><a href="{$link_content}" target="_blank">{$item->name}</a></p></td>
{/if}
........................
...........................
{/strip}
{/foreach}
奇怪的问题发生了,网页功能显示的完全正确,但在表格上方出现若干“1”。我一句一句删除代码并检测,发现{$con = mysqli_connect("localhost","root","root")}产生了“1”。只要删除这句话,就没有1产生、出现出错信息;如果不删除这句话而删除后面的代码,则有1,且后面出现出错信息。
大牛们,这个是咋回事情?我该如何修改呢?
其实我很想把这部分代码放到后端文件中去,但这里一个关键变量$item->id是在循环中读取的,我后面没有办法多次读取、并搜索该条记录中的关键词content中的值,且返回到tpl文件中去显示出来。
该如何处理呢?请大牛们赐教啊。
------解决方案--------------------
这个可以写在PHP里面,然后用用标签替换掉啊,在模板里面写什么连接数据库呢?
------解决方案--------------------
还是改你php吧 吧要添加的内容循环添加进去 页面直接调用就行了
------解决方案--------------------
模板中不要写逻辑代码,尽量都写到php中去。
交互不外乎两种,form提交到后端,或者ajax传值。
------解决方案--------------------
这是没有问题的