2012-10-30 97 views
0

demo.php文件,並在那裏我創建了一個函數從數據庫中獲取數據:顯示PHP文件數據到.tpl(Smarty的)

例:

function display() { 
    $sql = "SELECT * FROM user WHERE id=" . $_POST['id']; 
    $r=mysql_query($sql); 
    $row=mysql_fetch_row($r); 
} 

現在,我有user.tpl文件我想將來自上面顯示功能的$row數據顯示到該.tpl文件中。

我是smarty的新手,對它的語法也沒有多少意識。

我該如何做到這一點。

需要幫助....感謝

+0

檢查['smarty.net - Crash Course'](http://www.smarty.net/crash_course)。使用'{foreach}'標籤遍歷數組。 – air4x

+0

爲什麼負面.....? – Sky

回答

1
function display() { 
     $sql = "SELECT * FROM user WHERE id=" . $_POST['id']; 
     $r=mysql_query($sql); 
     $row=mysql_fetch_row($r); 
    } 

對於智者模板獲取值,你需要使用assign方法

$smarty->assign('rows',$rows); 

,並在你的模板文件,你可以使用foreach function遍歷數組

{foreach from=$rows item="row"} 
    {$row.name}<br/> 
    {$row.Id}  
{/foreach} 
+0

,那麼它將在'.tpl'文件中可用,是否有任何需要將demo.php文件包含到user.tpl中? – Sky

+0

@ kj7不,它不是必需的,你可以指定值,它將在模板文件中可用 – Sibu

+0

謝謝....但在項目中,兩個文件的位置都不同。 'demo.php'位於'/projectname/demo.php,user.tpl'位於'/ projectname/gui/templates/execute/user.tpl' – Sky

1
function display() { 
    $sql = "SELECT * FROM user WHERE id=" . $_POST['id']; 
    $r = mysql_query($sql); 
    $row = mysql_fetch_row($r); 
    return $row; 
} 

你的結果變量分配user.tpl

$this->mysmarty->assign('resArr',$resVar); 
$this->mysmarty->display('user.tpl'); 

使用foreach您可以在顯示結果到您的user.tpl這樣

<ul> 
{foreach $resArr as $value} 
    <li>{[email protected]}: {$value}</li> 
{/foreach} 
</ul> 
+0

有沒有必要在'user.tpl'中包含'demo.php'文件? – Sky

+0

@ kj7 - 不需要。 –

+0

:謝謝....但在項目中,兩個文件的位置都不相同。 'demo.php'在'/ projectname/demo.php'和'user.tpl'在'/ projectname/gui/templates/execute/user.tpl' – Sky