線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:18996
推到 Plurk!
推到 Facebook!
[<<] [1] [>>]

Delphi For php 使用嵌入html網頁範本问题

答題得分者是:timv0215
cogi
一般會員


發表:3
回覆:10
積分:2
註冊:2009-03-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-03-10 12:04:54 IP:121.41.xxx.xxx 訂閱
第一個問題以前用Dreamweaver編輯時代碼時,可以這樣引入尾部檔
[code php]
<?php include("footer.inc.php"); ?>
[/code]
現在用D For php應該怎麼做才能達到這個效果。
第二個問題我在用D For php嵌入html網頁範本時,只要加入TreeView1這個控制項再用流覽器流覽網頁時整個網頁的頁面就會無法出現捲軸,不知要怎樣設置才能出現捲軸,請指點。
timv0215
一般會員


發表:2
回覆:13
積分:8
註冊:2008-10-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-03-11 08:23:31 IP:201.217.xxx.xxx 訂閱
我的作法是
在FORM->事件(OnTemplate)建一個Function
[code php]
requere_once("footer.inc.php");
function
{
global $footer; // 對應你footer.inc.php裡的$footer
template = $params['template'];
$template->_smarty->assign("myFooter", $footer);
}
[/code]
footer.inc.php裡
把要加在最底的HTML碼都宣告成$footer字串
最後,
在你的TEMPLATE FILE裡的最底 加上 {%$myFooter%},對應我在function裡assign 的 myFooter
範例:http://www.megaupload.com/?d=ZM9VZQYL
第一個範例=>是教,如果套TEMPLATE然後,可以套入自訂的HEADER 及FOOTER
有些時候我們的每一個頁面的HEADER或FOOTER都是一樣的,但頁面有可能有很多,故會把HEADER或FOOTER獨立出來寫再套回去
這樣要改時,只要改獨立出來的檔案就好了!不會每個頁面都改
我在第一個範例只放了 YOU GOT IT 只是不要讓頁面看起來什麼都沒有!
重點不在頁面上的字樣效果,重點在用D4P套HEADER及FOOTER的作法
---------------------------
解決SCROLL出不來的問題
我是在TERMPLATE 裡加上DIV在外層,再設overflow:auto
再來用JAVASCRIPT去取BROWSER的高,設回DIV
D4P他好像把高度都設死了,沒套TEMPLATE時,他只會出現你在設FORM的大小時那點大!
範例:http://www.megaupload.com/?d=WLJI3P9G

第二個範例=>是教,如何用DIV去作頁面右邊的SCROLL,因為D4P在套入某些VIEW(TREEVIEW或LISTVIEW等) 萬一內容超過BROWSER的高時,右邊的SCROLL不會出現的問題 這個的重點,在TEMPLATE裡的JAVASCRIPT上,不在D4P上
補充:我測了FIREFOX,IE跟CHROME,IE上不能用。如果有人測出IE的方法,麻煩告訴我一下
編輯記錄
timv0215 重新編輯於 2009-03-11 08:53:21, 註解 無‧
timv0215 重新編輯於 2009-03-11 08:55:19, 註解 無‧
timv0215 重新編輯於 2009-03-15 14:15:50, 註解 無‧
timv0215 重新編輯於 2009-03-16 04:58:35, 註解 無‧
timv0215 重新編輯於 2009-03-16 22:04:50, 註解 無‧
cogi
一般會員


發表:3
回覆:10
積分:2
註冊:2009-03-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-03-11 22:49:04 IP:58.23.xxx.xxx 訂閱
PHP不久,你說的我沒能弄懂,不知能否做個簡單的例子演示一下。
timv0215
一般會員


發表:2
回覆:13
積分:8
註冊:2008-10-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-03-13 15:36:10 IP:201.217.xxx.xxx 訂閱
我作了一個 很簡單的範例給你主要是要注意一下,
我套入的TEMPLATE 跟我在unit1的事件裡的OnTemplate
下載
http://www.megaupload.com/?d=ZM9VZQYL
cogi
一般會員


發表:3
回覆:10
積分:2
註冊:2009-03-08

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-03-13 16:44:52 IP:121.41.xxx.xxx 訂閱
那個連接我這邊下載不了,能發到我郵箱嗎(tang-cogi@tom.com)
cogi
一般會員


發表:3
回覆:10
積分:2
註冊:2009-03-08

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-03-14 11:36:48 IP:121.41.xxx.xxx 訂閱
,,第二個問題你說的思路我還未能理解能否用例子的形式加以說明一下.
timv0215
一般會員


發表:2
回覆:13
積分:8
註冊:2008-10-21

發送簡訊給我
#7 引用回覆 回覆 發表時間:2009-03-15 14:16:59 IP:201.217.xxx.xxx 訂閱
2個的範例,我都另外作好MAIL給你了~
cogi
一般會員


發表:3
回覆:10
積分:2
註冊:2009-03-08

發送簡訊給我
#8 引用回覆 回覆 發表時間:2009-03-15 23:01:52 IP:58.23.xxx.xxx 訂閱
D for phpTreeview流覽
第二個問題的那個範例也存在同樣的問題。
編輯記錄
cogi 重新編輯於 2009-03-15 23:03:58, 註解 無‧
easy1201
一般會員


發表:1
回覆:10
積分:2
註冊:2009-02-28

發送簡訊給我
#9 引用回覆 回覆 發表時間:2009-03-16 01:48:26 IP:60.248.xxx.xxx 訂閱
哪個檔案我下載成功了
但是看不到崁入效果@@
timv0215
一般會員


發表:2
回覆:13
積分:8
註冊:2008-10-21

發送簡訊給我
#10 引用回覆 回覆 發表時間:2009-03-16 05:00:00 IP:201.217.xxx.xxx 訂閱
2個問題,我都各自寫成一個D4P的範例
自己看看,還有問題的話再,問吧!
http://www.megaupload.com/?d=ZM9VZQYL
http://www.megaupload.com/?d=WLJI3P9G
編輯記錄
timv0215 重新編輯於 2009-03-16 08:16:33, 註解 無‧
easy1201
一般會員


發表:1
回覆:10
積分:2
註冊:2009-02-28

發送簡訊給我
#11 引用回覆 回覆 發表時間:2009-03-16 14:04:06 IP:60.248.xxx.xxx 訂閱
奇怪
我兩個檔案都已下載
但是都沒看到效果

第一個檔案 只跑出 YOU GOT IT !?
而且哪段文字是打在 FORM 不是崁入的

第二個檔案
跑出來是空白頁面

我的系統:VISTA 64BIT
DELPHI FOR PHP 2.0

這因該跟作業系統沒關西吧
編輯記錄
easy1201 重新編輯於 2009-03-16 16:33:37, 註解 無‧
easy1201 重新編輯於 2009-03-16 16:35:05, 註解 無‧
timv0215
一般會員


發表:2
回覆:13
積分:8
註冊:2008-10-21

發送簡訊給我
#12 引用回覆 回覆 發表時間:2009-03-16 21:58:38 IP:201.47.xxx.xxx 訂閱
第一個範例=>是教,如果套TEMPLATE然後,可以套入自訂的HEADER 及FOOTER
有些時候我們的每一個頁面的HEADER或FOOTER都是一樣的,但頁面有可能有很多,故會把HEADER或FOOTER獨立出來寫再套回去
這樣要改時,只要改獨立出來的檔案就好了!不會每個頁面都改
我在第一個範例只放了 YOU GOT IT 只是不要讓頁面看起來什麼都沒有!
重點不在頁面上的字樣效果,重點在用D4P套HEADER及FOOTER的作法
---------------------------
第二個範例=>是教,如何用DIV去作頁面右邊的SCROLL,因為D4P在套入某些VIEW(TREEVIEW或LISTVIEW等)
萬一內容超過BROWSER的高時,右邊的SCROLL不會出現的問題
這個的重點,在TEMPLATE裡的JAVASCRIPT上,不在D4P上
補充:我方法,我測了FIREFOX,IE跟CHROME,IE上不能用。如果有人測出IE的方法,麻煩告訴我一下
timv0215
一般會員


發表:2
回覆:13
積分:8
註冊:2008-10-21

發送簡訊給我
#13 引用回覆 回覆 發表時間:2009-03-16 22:22:43 IP:201.47.xxx.xxx 訂閱

===================引 用 easy1201 文 章===================
奇怪
我兩個檔案都已下載
但是都沒看到效果

第一個檔案 只跑出 YOU GOT IT !?
而且哪段文字是打在 FORM 不是崁入的
崁入的是{%$myFooter%}那個
請看一下我最上面的說明

第二個檔案
跑出來是空白頁面

我的系統:VISTA 64BIT
DELPHI FOR PHP 2.0

這因該跟作業系統沒關西吧
理論上應該是沒關係
我沒有VISTA。XP上我沒有問題
我測了3個BROWSER只有IE不能用

備注:我上傳的是D4P的專案檔,不是已包含VCL元件的完成品喔!
編輯記錄
timv0215 重新編輯於 2009-03-16 22:45:33, 註解 無‧
cogi
一般會員


發表:3
回覆:10
積分:2
註冊:2009-03-08

發送簡訊給我
#14 引用回覆 回覆 發表時間:2009-03-16 23:39:13 IP:58.23.xxx.xxx 訂閱
兩個範例都可以用的,謝謝!
再請教第三個問題:
我的unit1裡有一個DBRepeater1(DBRepeater1的DataSource屬性有連接資料庫控制項),
Table1的Limitcount屬性設為5,
還有一個Label6也在DBRepeater1控制項上,在Label6 的BeforeShow事件代碼如下:

[code php]
//for ($i=1;i<=5;$i ) //加上這句代碼出錯,所以注釋掉
$sender->Link = $this->tbsoftware1->download; //這句只能讓那個連接顯示在第5個記錄上
[/code]
現在問題是流覽網頁時會從資料庫裡面的記錄顯示5條在DBRepeater1上,但是那代碼只能讓那個連接顯示在第5個記錄上,我想讓前面4個記錄也顯示超級連接,
這種效果應該怎樣實現。(我表述的可能不是很好,但是這種效果在網站上很常見的
timv0215
一般會員


發表:2
回覆:13
積分:8
註冊:2008-10-21

發送簡訊給我
#15 引用回覆 回覆 發表時間:2009-03-17 11:07:26 IP:201.217.xxx.xxx 訂閱
SORRY~這個問題我沒法幫你!
因為我的D4P DB控制工具,我都用不出來,我試了幾次都會出現錯誤訊息
不知道是不是因為我用POSTGRE的關係~我是沒有再去測其他DB會不會也有這個問題

所以我也放棄了 D4P 上提供的DB工具
我連接DB 取資料的部份,我都是另外寫再套入D4P的其他工具上達到我要的功能

第三個問題,就麻煩你再提問題,請教其他大大了!
cogi
一般會員


發表:3
回覆:10
積分:2
註冊:2009-03-08

發送簡訊給我
#16 引用回覆 回覆 發表時間:2009-03-17 15:48:36 IP:58.23.xxx.xxx 訂閱
好的!
cogi
一般會員


發表:3
回覆:10
積分:2
註冊:2009-03-08

發送簡訊給我
#17 引用回覆 回覆 發表時間:2009-03-22 18:47:06 IP:58.23.xxx.xxx 訂閱
連接DB 取資料的部份,我都是另外寫再套入D4P的其他工具上達到我要的功能。
能指點一下這部分是怎樣套入的嗎,我用這個套入的話requere_once("")總是出錯。
timv0215
一般會員


發表:2
回覆:13
積分:8
註冊:2008-10-21

發送簡訊給我
#18 引用回覆 回覆 發表時間:2009-03-23 03:47:45 IP:200.85.xxx.xxx 訂閱
我是用PEAR的套件MDB2,來寫DB的部份!
不知道你是否熟悉這套件!~

詳情及安裝請上他的官網,自己看看
http://pear.php.net/package/MDB2

寫法就是用傳統PHP作法,你要有CLIENT - SERVER的概念
D4P的作法,有點是不要分得那麼清楚

重點不是在PEAR的套件,因為那只是一個連結DB的方法
你用PHP 本身的套件來連也可以,像MYSQL_CONNET之類的
cogi
一般會員


發表:3
回覆:10
積分:2
註冊:2009-03-08

發送簡訊給我
#19 引用回覆 回覆 發表時間:2009-03-23 23:06:31 IP:58.23.xxx.xxx 訂閱
DB文件源碼如下

[code php]
<?php
/*============================================================================================*\
IP签名图片程序数据表:
CREATE TABLE `ip` (
`id` int(10) NOT NULL auto_increment,
`ip` varchar(15) NOT NULL default '',
`count` int(10) NOT NULL default '0',
`firsttime` datetime NOT NULL default '0000-00-00 00:00:00',
`lasttime` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`id`),
KEY `ip` (`ip`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
\*============================================================================================*/
$ip = $_SERVER["REMOTE_ADDR"]; // $_SERVER["REMOTE_ADDR"]表示当前访问者的IP
$nowtime = date("Y-m-d H:i:s"); // 当前的时间

$link = mysql_connect("localhost","root","810458"); // 连接本地数据库,用户为root,密码为123456
$flag = mysql_select_db('phpzt'); // 选择我们使用的phpzt数据库
$result = mysql_query("SELECT * FROM ip WHERE ip='$ip'"); // 查询当前IP在数据库的信息
$row = mysql_fetch_array($result); // 读取上一步的查询结果
if($row) // 如果查询到当前IP的信息,则执行以下代码
{
$id = $row['id']; // 读取当前IP的序号
$count = $row['count'] 1; // 读取当前IP的访问次数并加1表示这次的访问次数
$firsttime = $row['firsttime']; // 读取第一次的访问时间
$lasttime = $row['lasttime']; // 读取上一次的访问时间
mysql_query("UPDATE ip SET count=count 1,lasttime=NOW() WHERE ip='$ip'"); // 更新访问次数
}
else // 如果没有查询到当前IP的信息,则执行以下代码
{
mysql_query("INSERT INTO ip VALUES (NULL,'$ip','1',NOW(),NOW())"); // 将当前IP记录到数据库
$id = mysql_insert_id(); // 读取当前IP的序号
$count = 1; // 因为第一次访问,所以访问次数为1
$firsttime = date("Y-m-d H:i:s"); // 设置当前时间
$lasttime = date("Y-m-d H:i:s"); // 设置上一次访问时间
}
mysql_close($link); // 关闭数据库连接
?>
[/code]
timv0215
一般會員


發表:2
回覆:13
積分:8
註冊:2008-10-21

發送簡訊給我
#20 引用回覆 回覆 發表時間:2009-03-24 10:43:46 IP:201.217.xxx.xxx 訂閱
如果依你這樣寫的話~
你REQUERE就放在外面就好LA~不用在FUNCTION有宣告
放在FUNCTION裡,你就在另外在UNIT1的事件裡的ONCREATEFORM或 BEFORCREATEFORM
那裡把你的FUNCTION 在網頁構成前先 叫出來,不然你的IP.php不會被叫出來

如果你是在function外REQUERE 你的IP.PHP
FUNCTION裡要用IP.PHP的變數,用GLOBAL 把變數叫進來用就好了

[code php]
require_once("ip.php");
function indexShow($sender, $params)
{
global $link;
$result = mysql_query("SELECT * FROM ip WHERE ip='$ip'"); // 查詢當前IP在數據庫的信息
$row = mysql_fetch_array($result); // 讀取上一步的查詢結果
if($row) // 如果查詢到當前IP的信息,則執行以下代碼
{
$id = $row['id']; // 讀取當前IP的序號
$count = $row['count'] 1; // 讀取當前IP的訪問次數並加1表示這次的訪問次數
$firsttime = $row['firsttime']; // 讀取第一次的訪問時間
$lasttime = $row['lasttime']; // 讀取上一次的訪問時間
mysql_query("UPDATE ip SET count=count 1,lasttime=NOW() WHERE ip='$ip'"); // 更新訪問次數
}
else // 如果沒有查詢到當前IP的信息,則執行以下代碼
{
mysql_query("INSERT INTO ip VALUES (NULL,'$ip','1',NOW(),NOW())"); // 將當前IP記錄到數據庫
$id = mysql_insert_id(); // 讀取當前IP的序號
$count = 1; // 因為第一次訪問,所以訪問次數為1
$firsttime = date("Y-m-d H:i:s"); // 設置當前時間
$lasttime = date("Y-m-d H:i:s"); // 設置上一次訪問時間
}
mysql_close($link); // 關閉數據庫連接
[/code]
mysql_connet 改用 pconnet
要不,如果要正規一點,把你的IP.PHP裡的MYSQL連接寫作CLASS
編輯記錄
timv0215 重新編輯於 2009-03-24 11:21:46, 註解 無‧
timv0215 重新編輯於 2009-03-24 11:23:51, 註解 無‧
cogi
一般會員


發表:3
回覆:10
積分:2
註冊:2009-03-08

發送簡訊給我
#21 引用回覆 回覆 發表時間:2009-03-25 21:28:09 IP:58.23.xxx.xxx 訂閱
CLASSDelphiunit檔)
timv0215
一般會員


發表:2
回覆:13
積分:8
註冊:2008-10-21

發送簡訊給我
#22 引用回覆 回覆 發表時間:2009-03-26 06:13:29 IP:201.217.xxx.xxx 訂閱
不知道你有沒有學過JAVA 或 其他程式語言!
寫成CLASS的好處,我不說太多,你上GOOGLE 找一下應該在很多地方,很多大大們都說過了

我就只說我為什麼會去把某些功能寫成CLASS
CLASS基本上是去定義一個架構出來,
建立一個程式功能用的邏輯
把一些功能的流程預先寫在裡面
當你宣告他時,他就會把預先設定好的流程,自動的跑一遍
我覺得他跟FUNCTION很像,但他更可以說是FUNCTION的集合
另外他也提供一些變數上的隱密性,可以把過程中有些你不想流出的變數封在裡面

我會叫你寫成CLASS,只是出於個人習慣,當然不用麻煩到去寫CLASS,連結DB的功能還是可以出來!

===================引 用 cogi 文 章===================
CLASSDelphiunit檔)
easy1201
一般會員


發表:1
回覆:10
積分:2
註冊:2009-02-28

發送簡訊給我
#23 引用回覆 回覆 發表時間:2009-03-26 13:33:02 IP:60.248.xxx.xxx 訂閱
小弟不才
還沒弄懂

下載範例
封裝後 都會出錯

還有個問題
就是如何在
我分別崁入三個PHP
header.php
top.php
footer.php
崁入後
在 HEADER 建立連結
崁入到
top.php哪個位置
編輯記錄
easy1201 重新編輯於 2009-03-26 15:40:35, 註解 無‧
easy1201
一般會員


發表:1
回覆:10
積分:2
註冊:2009-02-28

發送簡訊給我
#24 引用回覆 回覆 發表時間:2009-03-26 17:33:20 IP:60.248.xxx.xxx 訂閱
感謝 
我終於頓悟了

還有個問題 就是如何在 我分別崁入三個PHP header.php top.php footer.php 崁入後 在 HEADER 建立連結 崁入到 top.php哪個位置

剩下這個問題
就是如何在
我分別崁入三個PHP
header.php
top.php
footer.php
崁入後
在 HEADER 建立連結
崁入到
top.php哪個位置

我看到ASP崁入後
1.ASP

在網址列顯示
http://xxx.xxx/? XX=1

好像把整個都串在一起
單獨改個別檔案就好

D4P 能這樣嗎
請大大賜教
編輯記錄
easy1201 重新編輯於 2009-03-26 17:47:44, 註解 無‧
timv0215
一般會員


發表:2
回覆:13
積分:8
註冊:2008-10-21

發送簡訊給我
#25 引用回覆 回覆 發表時間:2009-03-27 09:08:28 IP:201.217.xxx.xxx 訂閱
我不大懂你的意思?
什麼在HEARDER建連結到TOP

我先確定一下,你
hearder.php
top.php
footer.php
都已經套入了吧?

現在你是想讓hearder.php 再套入top.php裡嗎?
是這樣嗎?
easy1201
一般會員


發表:1
回覆:10
積分:2
註冊:2009-02-28

發送簡訊給我
#26 引用回覆 回覆 發表時間:2009-03-27 19:20:57 IP:60.248.xxx.xxx 訂閱
  
HEARDER
TOP
footer

確定以套用

我的意思是
當點選HEARDER 某個連結
在這邊顯示
footer

還是只能
套HEARDER
編輯這部分
套footer

在存檔
套上套下 寫中間

編輯記錄
easy1201 重新編輯於 2009-03-27 19:22:33, 註解 無‧
cogi
一般會員


發表:3
回覆:10
積分:2
註冊:2009-03-08

發送簡訊給我
#27 引用回覆 回覆 發表時間:2009-03-27 23:03:07 IP:58.23.xxx.xxx 訂閱
套上套下 寫中間
HEARDER.inc.php头部檔
index.php主體
footer.inc.php尾部檔


easy1201
一般會員


發表:1
回覆:10
積分:2
註冊:2009-02-28

發送簡訊給我
#28 引用回覆 回覆 發表時間:2009-03-27 23:27:18 IP:60.248.xxx.xxx 訂閱
就只能
套用版頭
改變主體
套用版尾
每頁都只能這樣做嗎~?

哪如何改變聯結
就像http://xxx.xxx/?XX=XX
部要直接秀出XX.php

編輯記錄
easy1201 重新編輯於 2009-03-27 23:35:19, 註解 無‧
easy1201 重新編輯於 2009-03-27 23:35:54, 註解 無‧
timv0215
一般會員


發表:2
回覆:13
積分:8
註冊:2008-10-21

發送簡訊給我
#29 引用回覆 回覆 發表時間:2009-03-28 06:54:12 IP:201.217.xxx.xxx 訂閱
你的問題在我看來,只是JAVAS CRIPT的問題,跟一些HTML的概念
如果你要讓網址的連結變成
http://www.xxx.xxx/xx.php?xx=xx
那只要連結上你自己寫上去就好LA~!
你要寫http://www.xxx.xxx/xx.php?xx=xx 或 http://www.xxx.xxx/xx.php?xx=yy 來作連結都可以
對PHP,ASP,JSP來說,”?XX=XX”只是用來傳遞GET的值,跟POST一樣
我在後端只要寫個接收就好了!
我的理解你要的是,
http://www.xxx.xxx/xx.php?xx=xx1 ==>出現1畫面
http://www.xxx.xxx/xx.php?xx=xx2 ==>出現2畫面
http://www.xxx.xxx/xx.php?xx=xx3 ==>出現3畫面
http://www.xxx.xxx/xx.php?xx=xx4 ==>出現4畫面
那你就只要在XX.php裡加寫一個

[code php]
switch($_GET['xx']){
case "xx1":
requere_once('top1.php');
break;
case "xx2":
requere_once('top2.php');
break;
case "xx3":
requere_once('top3.php');
break;
case "xx4":
requere_once('top4.php');
break;
}
[/code]

根據不同的變數,去套不同的TOP

===================引 用 easy1201 文 章===================
就只能
套用版頭
改變主體
套用版尾
每頁都只能這樣做嗎~?

哪如何改變聯結
就像http://xxx.xxx/?XX=XX
部要直接秀出XX.php
easy1201
一般會員


發表:1
回覆:10
積分:2
註冊:2009-02-28

發送簡訊給我
#30 引用回覆 回覆 發表時間:2009-03-28 10:12:21 IP:60.248.xxx.xxx 訂閱
感謝
我搞定了
[<<] [1] [>>]
系統時間:2024-04-27 6:11:22
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!