作者 主題: 有關於smarty  (閱讀 7084 次)

0 會員 與 1 訪客 正在閱讀本文。

poule

  • 懷疑的國中生
  • **
  • 文章數: 36
    • 檢視個人資料
有關於smarty
« 於: 2006-02-20 15:01 »
小弟只是初學~想請教前輩們~
$tpl->assign("showtest",include("http://localhost/showtop.php"));
小弟想include這個程式
不過如果插入在html的表格裡<{$showtest}>這個變數則會變成1
include的程式也會跑掉~不知有沒辦法解決
還請各位前輩指教一下~
很多事情要做了才知道~

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5412
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
有關於smarty
« 回覆 #1 於: 2006-02-20 15:09 »
你真的了解你寫的程式是在做什麼嗎?
可以試著解釋一下, 然後自己看看那個解釋是不是沒問題的.

poule

  • 懷疑的國中生
  • **
  • 文章數: 36
    • 檢視個人資料
有關於smarty
« 回覆 #2 於: 2006-02-20 15:45 »
感謝前輩的回覆~不過小弟還是搞不太懂
showtop.php
代碼: [選擇]

<table border="0" width="100%">
<?php
include&#40;"sql.php"&#41;;
$sqls=sql_b&#40;"SELECT * FROM `talk` "&#41;;
for&#40;$i=0;$i<=count&#40;$sqls&#41;;$i++&#41;&#123;
echo ' <table border="0" width="100%">
<tr>
<td width="50%" height="12">名 稱 :'
.$sqls[$i&#93;[Top&#93;.'</td>
<td width="50%" height="12">時 間 :'.$sqls[$i&#93;[Time&#93;.'</td>
</tr>';
&#125;
?>

</table>

小弟只是把sql的資料作成表格然後再include到html的
代碼: [選擇]
   <td width="58%" height="505">
      <p><{$Showtest}></p>
      <p></p>
    </td>

還是找不出錯在哪?還請前輩指點一下
很多事情要做了才知道~

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5412
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
有關於smarty
« 回覆 #3 於: 2006-02-20 15:57 »
建議了解一下:
1. 什麼是 "變數" ?
2. 什麼是 "function" ?
3. 什麼是 "function 傳回值" ?

最後再去看看 include() 這個指令或 function 是做什麼用的, 需要傳那些參數, 而傳回那些資料回來.

wwwing

  • 懷疑的國中生
  • **
  • 文章數: 47
    • 檢視個人資料
有關於smarty
« 回覆 #4 於: 2006-02-20 16:04 »
$tpl->assign("showtest",include("http://localhost/showtop.php"));

{$showtest} 確實是 1,因為你是把 include 成功或失敗 assgin 給 showtest

Smarty 有 include_php 可以用
請直接修改 htm 檔,把 {$Showtest} 改成 {include_php file='showtop.php'} 試試看。

poule

  • 懷疑的國中生
  • **
  • 文章數: 36
    • 檢視個人資料
有關於smarty
« 回覆 #5 於: 2006-02-20 16:35 »
前輩們好~
小弟有試過單獨跑showtop.php是可以成功沒有問題的
之前也在沒有SMARTY的程式裡跑也是沒也問題~
所以小弟猜想問題是否是在SMARTY上?
其實這問題小弟已經找很久了,其實之前也有試過
<{include_php file="showtop.php"}>
但是只能秀出HTML碼並沒有辦法把處SQL的結果秀出來~
其實也找過為什麼,看囉一下http://smarty.php.net
有一段是
代碼: [選擇]

// load in variables from a mysql db and assign them to the template
require_once("MySQL.class.php");
$sql = new MySQL;
$sql->query("select * from site_nav_sections order by name",SQL_ALL);
$this->assign('sections',$sql->record);

?>

所以在想若還要再用smarty的MySQL.class.php
之前寫的程式起不是都要修改~這樣一來並沒有更方便,反而本末倒置,所以提出來跟大家討論一下~看是否有更方便的方法解決
很多事情要做了才知道~

學飛的小鳥

  • 活潑的大學生
  • ***
  • 文章數: 349
    • 檢視個人資料
有關於smarty
« 回覆 #6 於: 2006-02-20 16:56 »
如果smarty沒提供這樣的語法, 踢了也是沒用,
有一個解決的方式啦...改 smarty 的原始碼~~

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5412
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
有關於smarty
« 回覆 #7 於: 2006-02-20 16:58 »
本來就很奇怪.
既然要用 template 來處理. 結果 template 裡頭又有一堆 php code ?
還是那個不算 template?  如果不是 template, 為什麼 php code 裡頭還有出現 html code 等非 php 的東西?

poule

  • 懷疑的國中生
  • **
  • 文章數: 36
    • 檢視個人資料
有關於smarty
« 回覆 #8 於: 2006-02-20 18:00 »
其實仔細想想~前輩說的甚是~
但小弟愚魯~想不太出變通或解決的方法~
還請前輩們賜教一下 :lol:
很多事情要做了才知道~

Darkhero

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3728
  • 性別: 男
    • 檢視個人資料
    • ㄚ凱隨手紀
有關於smarty
« 回覆 #9 於: 2006-02-20 18:23 »
你好像還完全沒有搞懂到底 smarty 或者說 樣板程式引擎 的使用方式。
你可以先看看 www.php5.idv.tw/documents/smarty/smarty20040209.htm

更如同 twu2 所說得,你沒有了解什麼是 『變數』 , 什麼叫做 『傳值』 ,什麼叫做 『引入』...
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯.
『灌水才是重點,發文只是順便』
『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
Blog: http://blog.darkhero.net/
秘密基地: http://www.darkhero.net/comic/
目前服務的網站: http://www.libook.com.tw/

風車轉阿轉

  • 憂鬱的高中生
  • ***
  • 文章數: 127
    • 檢視個人資料
有關於smarty
« 回覆 #10 於: 2006-03-14 20:29 »
如前位兩位學長所說的
我也建議初學者不要一開始就玩 template or adodb
除非有 OO 基礎
否則一開就會碰很大的釘子

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
有關於smarty
« 回覆 #11 於: 2006-03-17 09:39 »
引述: "dolittle"
如前位兩位學長所說的
我也建議初學者不要一開始就玩 template or adodb
除非有 OO 基礎
否則一開就會碰很大的釘子


初學者玩 template or adodb 倒是無所謂
只是不要太異想天開, 先把基礎打穩固來
然後再來天馬行空...