我想将这个php连接到tpl。
但是当我尝试跑步时,它给了我致命的错误。
我向php添加了smarty以在tpl文件上显示这些数据,但仍有问题。
<?php
include('developer.php');
if( $xml = simplexml_load_file(url))
{
foreach($xml->campaign as $campaigns)
{
$camp_name = $campaignsl->name;
$camp_dec= $campaigns->description;
$camp_payout= $campaigns->payout;
$camp_url= $campaigns->url;
$smarty->assign( 'camp_name', $camp_name);
$smarty->assign( 'camp_dec', $camp_dec);
$smarty->assign( 'camp_payout', $camp_payout);
$smarty->assign( 'camp_url', $camp_url);
$smarty->display('link.tpl');
}
}
?>
这是tpl文件(link.tpl)。
<table width="100%" class="widget-tbl">
<tr class="titles">
<td align="center">Name</td>
<td align="center">Description</td>
<td align="center">amount</td>
<td align="center">Link</td>
</tr>
<tbody id="tablelist">
{foreach item=item from=$campaigns}
<tr>
<td align="center">{$camp_name}</td>
<td align="center">{$camp_dec}</td>
<td align="center">{$camp_payout}</td>
<td align="center">{$camp_url}</td>
</tr>
{/foreach}
</tbody>
答案 0 :(得分:3)
第一个问题是您的$url
变量(也由@ maxime-lorant指出)在以下语句中:
if( $xml = simplexml_load_file($url)) // Use $url not url
其次,你正在做$camp_name = $campaignsl->name;
而$campaignsl
未定义!
第三,你没有将$campaign
分配给smarty模板,而是在它上面执行循环。
尝试以下方法:
if( $xml = simplexml_load_file($url))
{
$smarty->assign('campaigns', $xml->campaign);
$smarty->display('link.tpl');
}
然后在你的模板中:
{foreach item=item from=$campaigns}
<tr>
<td align="center">{$item->name}</td>
<td align="center">{$item->description}</td>
<td align="center">{$item->payout}</td>
<td align="center">{$item->url}</td>
</tr>
{/foreach}
答案 1 :(得分:0)
您在解析XML文件时忘记了$
:
if( $xml = simplexml_load_file(url))
将其替换为if( $xml = simplexml_load_file($url))
。您还可以检查此变量是否已初始化,因为您位于文件的开头...