2013-04-22 43 views
0

我有一個關於GET功能的問題。我目前有一個獲得行動的表單。我正在使用get函數訪問另一個頁面中的數據。不幸的是,我的每一個價值觀都有一個「錯誤:未定義索引」。在閱讀了類似的問題之後,我嘗試了使用isset(如下所示),並且擺脫了錯誤,但我不確定我的數據是否存儲在變量中,因爲如果我回顯4個變量,則什麼也不顯示。有人能給我一個正確的方向嗎?從形態更新數據庫和更新哪裏變量

數據:

while($row = mysql_fetch_array($result)) { 
echo "<div class=\"addform\"><form method='GET' action=\"update.php\">\n"; 

echo " <input type=\"text\" value=\"".$row['tfid']."\" name=\"tfid\">\n"; 

echo " <input type=\"text\" name=\"fname\"  value=\"".$row['fname']."\"/>\n"; 

echo " <input type=\"text\" name=\"lname\" value=\"".$row['lname']."\"/>\n"; 

echo " <input type=\"text\" name=\"hca\" value=\"".$row['hca']."\"/>\n"; 

echo " <input type=\"text\" name=\"file\" value=\"".$row['file']."\"/>\n"; 

echo " <input type=\"image\" src=\"images/update.png\" alt=\"Update Row\" class=\"update\" title=\"Update Row\">\n"; 

echo "<a href=\"delete.php?tfid=".$row['tfid']."\"><img title='Delete Row' alt=\"Delete\" class='del' src='images/delete.png'/></a></form></div>\n"; 

} 

echo "</table><br />\n"; 

和檢索代碼:

$tfid= isset($_GET["tfid"]) ? $_GET["tfid"] : NULL; 
$fname = isset($_GET["fname"]) ? $_GET["fname"] : NULL; 
$lname = isset($_GET["lname"]) ? $_GET["lname"] : NULL; 
$hca = isset($_GET["hca"]) ? $_GET["hca"] : NULL; 
echo $tfid; 
echo $fname; 
echo $lname; 
echo $hca; 
+0

你如何在第一頁上設置'$ _GET'變量?通過表單? – Niro 2013-04-22 14:39:36

+0

如果一個'$ variable'爲NULL,回顯它什麼都不輸出...... – bwoebi 2013-04-22 14:39:56

+0

是的,我正在通過表單設置這些值。我會編輯我的問題以顯示。 – kayle 2013-04-22 14:48:25

回答

3

您的編輯後:

後您發佈表單代碼,我注意到這個問題可能是您的輸入值可能爲空,因爲語法看起來或多或少是正確的。通過view-source仔細檢查數值以確保其有效性。


您的編輯之前:

的錯誤ocurring因爲實際上變量是集。確保您的形式如下:

<form action="yourpage.php"> 
<input name="fname" type="text" /> 
<input name="lname" type="text" /> 
<input name="hca" type="text" /> 
<input name="tfid" type="text" /> 
</form> 

如上圖所示,在_GET變量正在尋找屬性。初學者中的一個常見錯誤(每個人都曾在此時間犯過這種錯誤)是使用id代替nameid用於選擇器目的,而name通常用於檢索服務器端的值。

東西要記住....

由於@George康明斯提到的,你也應該知道,$_GET參數是通過URL傳遞,像這樣:

http://yoururl.com?var1=data1&var2=data2 

在一些的情況下,您可能不希望用戶看到通過表單發送的所有數據,因此在這種情況下,您希望使用$_POST,這本質上是隱藏式表單數據的傳遞。實際上,這些數據並沒有真正隱藏起來,但它肯定比使用$_GET更隱蔽。

+0

這是正確的答案。其他疑難解答可以通過查看目標頁面的URL參數來完成。 GET請求顯示URL中的字段和數據。 – 2013-04-22 14:47:09

+0

@GeorgeCummins好點,添加到原來的答案。 – 2013-04-22 14:51:41

+0

你是正確的,通過使用get函數,變量應該通過URL。我似乎無法做到這一點,儘可能多我想:) – kayle 2013-04-22 14:55:00