我对GET功能有疑问。我目前有一个带有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 :(得分:3)
发布表单代码后,我发现问题可能是输入的值可能为空,因为语法看起来或多或少是正确的。通过view-source
仔细检查值,以确保其有效性。
在您修改之前:
错误正在发生,因为变量实际上是而不是设置。确保您的表单如下所示:
<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
代替name
。 id
用于选择器目的,而name
通常用于检索服务器端的值。
要记住的事情......
正如@George Cummins所提到的,您还应该知道$_GET
参数通过URL传递,如下所示:
http://yoururl.com?var1=data1&var2=data2
在某些情况下,您可能不希望用户看到通过表单发送的所有数据,因此在这种情况下,您可能希望使用$_POST
,这实际上是隐藏的传递表格的数据。实际上,这些数据并不是真正隐藏的,但它肯定比使用$_GET
更隐蔽。