2011 本站教學範例已全面更新~ 新教學請看 http://www.flycan.com/article/   【到新的教學討論區】
【飛肯設計學苑】- 回首頁 -
回首頁最新開課訊息企業包班教育訓練範例教學區問題討論區交流分享區程式下載區
Photoshop影像達人專修班 Photoshop 遮色片 & 色版創作進階班 CSS 版面設計專修班 ActionScript 3.0 程式設計入門班 ActionScript & XML 進階整合應用班 Dreamweaver & CSS網頁版型設計班

 

本站已全面更新~ 2011年 新教學範例請看 → http://www.flycan.com/article/

 

【DW PHP 資料庫教學】範例區
解析PHP插入紀錄後表單變數消失的原因

發表新主題   回覆主題
【飛肯】教學網站 首頁 » 【DW PHP 資料庫教學】範例區
上一篇主題 :: 下一篇主題  
發表人 內容
【姜】
【老師】
【老師】


註冊時間: 2005-12-01
文章: 1873

發表解析PHP插入紀錄後表單變數消失的原因 引言回覆

發表於: 2005-12-18 17:04 
原文 by 【YOGO版主】

不知道各位朋有是否有方現在DW for PHP中,為何在插入紀錄後,表單變數就消失了。

那是因為dw的插入紀錄是在同一頁作的,其實你按下送出表單,其實是送回你插入紀錄的表單那一頁,因為插入紀錄的程式碼在if判斷式之內,所以當條件成立的時後,才會去處理插入紀錄的程式,完成後再轉址導向你在設定插入紀錄完成後所要前往的頁面,因為在插入紀錄頁面時表單變數是傳給同一頁,你在插入紀錄完成後所要前往的頁面當然無法取得表單變數,因為根本沒有表單變數,你要怎麼取得。

你要傳遞到插入紀錄完成後所要前往的頁面的資料會很多嗎?看你的資料量而有不同的作法。

我目前有幾種作法如下:

1.用session(也就是你有作過的方法,不過你用錯地方而以)

2.用url參數作

3.用另一張表單作

4.你可以在if判斷式內,找到完成插入記錄完成後要前往的頁面網址,在後方加上10個url參數,而url參數的值就是表單變數的值。

5.你可以在if判斷式內,新增10個session變數,而session參數的值就是表單變數的值。

6.你可以在if判斷式內,找到完成插入記錄完成後要前往的頁面網址,把這一段用一張新的表單取代,然後設10設隱藏欄位,欄位值就是表單變數的值,然後用javascript把表單自動送出。

因為有10筆資料(或更多),用以上的方法可能會覺得很累,教另一個更快的方法(別打我,英雄不是都最後的時候才登場嗎?)在完成插入記錄後即表示你在資料庫新增一筆資料了(真是廢話),一般來說我們設定資料表欄位的時會都會設訂一個主鍵,喔!關鍵來囉!你只要在if判斷式內,將表單變數傳遞主鍵的那個變數指派給一個url參數(較不安全)或session變數(較安全),然後在你原本要接收表單資料那一頁(也就是完成插入記錄後要前往的頁面)用上一頁傳過來的url變數或session變數當篩選條件,取出你要的資料就ok了。對了,又想到一個方法了,不要用dw內建的插入記錄,自己在完成插入記錄後要前往的頁面寫程式碼插入記錄,那表單變數就可以在這一頁使用了,方法很多,端看個人喜好囉!不過不管你用何種方式都需寫在if判斷式內,我舉個session的例子好了,假設你的表單名稱是"form1"好了,當你用dw完成插入記錄的伺服器行為後,切換到原始碼編輯,然後找到這一段:

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {

這一段是你用dw作插入記錄的伺服器行為後,dw自動幫你加上去的,然後在這一段的下方找這一段:

header(sprintf("Location: %s", $insertGoTo));

在這一段的上方加一段程式碼如下:

$_SESSION['id'] = $_POST['id']; //$_POST['id']這個表單變數是我亂取得,你要依你的實際需求去改變。

這樣即可,然後去你插入記錄完成後要前往的頁面那一頁新增一個資料集,篩選條件就是這個session變數,這樣即可取得你要的資料了喔!若要使用session變數,記得在每頁的開頭加上

session_start();

就先教到這裡,有問題再來討論囉!

回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
從之前的文章開始顯示:   
發表新主題   回覆主題     1頁(共1頁)
【飛肯】教學網站 首頁 » 【DW PHP 資料庫教學】範例區

 
所有的時間均為 台北時間 (GMT + 8 小時)
前往:  

回首頁】【最新開課訊息】【企業委訓】【範例教學分享區】【問題討論區