2013-08-24 120 views
-4

我想將此php連接到tpl。當我運行這個php代碼時發生致命錯誤

但是當我嘗試運行時,它給了我致命的錯誤。

我添加了聰明的PHP來顯示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> 
+2

什麼是你得到了致命的錯誤? – Bono

+0

什麼致命錯誤?你可以使用痕跡嗎?我認爲這是代碼第一部分缺少的'$'。 –

+0

另外請注意,如果你在一個循環中分配smarty值(在PHP中),只有最後一個循環的值將被傳遞給smarty! – Bono

回答

3

第一個問題是您$url變量在下面的語句(如也@馬克西姆 - 洛倫特指出):

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} 
+0

非常感謝。有用。 – user2674785

0

你必須忘記$在XML文件的解析:

if($xml = simplexml_load_file(url)) 

通過if($xml = simplexml_load_file($url))替換此。您也可以檢查這個變量初始化,因爲你在開始的文件...

相關問題