2013-08-06 98 views
0

嗨我有三個形式的PHP頁面,Form1用戶將填寫數據並將此變量帶到Form2頁面並執行數據庫{Ins​​ert,Update}。並再次Form2傳遞他們的變量,用戶填寫,Form1變量的form3.My問題是如何將Form1變量傳遞給Form3。如何從另一個php頁面調用php變量

窗體2

//variable from Form1 
$calendar_id_val = $_GET['calendar_id']; 
$calendar_name = $_GET['$calendar_choose_name']; 
$calendar_type = $_GET['calendar_type']; 

然後藉此在數據庫中選擇,並顯示結果給用戶Form2.After選擇並填寫窗口2 .Pass變量的Form3。

Form3

$current_month = $_GET['month']; //Variable from Form2 

我打電話Form1的變量,SESSION

$_SESSION['calendar_id_val'] = $_GET["calendar_id_val"]; 
$calendar_id = $_SESSION['calendar_id_val'] ; 

但忽略了最低的工作。如何從Form3調用Form1變量。我使用GET方法。

+0

隱藏的字段或會話。如果您正在使用會話,請確保在嘗試訪問/設置任何會話變量之前使用'session_start();'。 – Novocaine

+0

您必須設置會話。使用'session_start()'開始使用會話。閱讀關於會議的這個:http://php.net/manual/en/features.sessions.php –

+0

$ _SESSION ['calendar_id_val'] = $ calendar_id_val; 並做開始會話。爲什麼你使用$ _GET獲取calendar_id_val並存儲在$ _SESSION中。你是否從Form2發送calendar_id_val值? – Priya

回答

0

你似乎不太明白變量保留在內存中多久。在PHP中,腳本完成後,該腳本分配的每個內存都將被釋放,因此$calendar_id_val不再在內存中。
如果您想在未來的用戶發佈形式(由下一個請求),那麼你已經中途那裏從表單中使用的值,請嘗試:

session_start(); 
$calendar_id_val = $_GET['calendar_id']; 
$_SESSION['calendar_id_val'] = $calender_id_val; 

之前,你可以使用會話,您將永遠需要致電session_start。假設在完成第三個表單的處理後,不需要保留數據,session_destroy值得一看。但無論如何,在會話中存儲數據之後,只要會話有效,id值就可以使用。 check the manual for more on sessions
您也可以使用cookie。既然你使用GET,我認爲你沒有傳遞任何敏感或關鍵的數據,so setcookie也可以完成這項工作。然後,請參閱使用超級全局的$_COOKIE的值。

請注意,建議使用會話,因爲會話存儲數據服務器端,而cookie存儲在客戶端的機器上。這使得他們很容易(可以與回火)和不可靠的(客戶端可以禁用/拒絕您的Cookie)

與往常一樣,如果我沒有鏈接到我提到的所有功能,只是去http://www.php.net/<functionName>的細節

0

session_start();到你的頁面頂部1row 1列

session_start(); 
$calendar_id_val = $_GET['calendar_id']; 
$_SESSION['calendar_id_val'] = $calender_id_val; 
0

您在使用前應啓動會話。

分配在Form1網頁會話變量這樣

session_start(); 
$_SESSION['calendar_id_val'] = $_GET["calendar_id_val"]; 
$calendar_id = $_SESSION['calendar_id_val'] ; 

和訪問會話變量窗口2頁這樣

session_start(); 
echo $_SESSION['calendar_id_val']; 

+0

而不是複製現有的答案,如果你同意的話可以提高他們的評價,或者把它留在那個......但是你對現有的答案有什麼不同? –

+1

??您的評論是_「@ Elias Van Ootegem」_...我該怎麼做? –

-2

您可以嘗試將其聲明爲全局。

global $a; 
$a = $_GET['really']; 
相關問題