Php:表单提交是如何工作的?

时间:2013-06-10 13:30:03

标签: php post get

我对PHP很新。

代码非常简单:

home.php:

<form action="getsentitem.php" method="get">
   <div  >
   <input  name="query" id="query" class="searchQuery" size="20" value="" type="text" autocomplete="off">
   <input id="searchButton" value="Search" type="submit">
   </div>
</form>

getsentitem.php:

<?php
if (isset($_GET['query']))
$query = $_GET['query'];

?>

问题: 上面的代码只会给我在home.php中的文本框中输入的内容。现在,有什么办法可以获得文本框其他属性的值吗?比如,是否可以通过此方法获取文本框的id或其大小。

3 个答案:

答案 0 :(得分:3)

不,不是。只有name =&gt;值对通过您选择的方法(GET / POST)发送到服务器。

如果您愿意,可以在表单中的隐藏输入中包含自定义数据:

<form action="getsentitem.php" method="get">
   <div  >
   <input type="hidden" name="more_info" value="I will be available after submit."/>
   <input  name="query" id="query" class="searchQuery" size="20" value="" type="text" autocomplete="off">
   <input id="searchButton" value="Search" type="submit">
   </div>
</form>

echo $_GET['more_info']; // 'I will be available after submit.'

当您通过AJAX调用和javascript计算生成其他数据时,这很方便。您不一定知道高动态网页的所有ID。

CSRF令牌也通常以这种方式发送。


答案 1 :(得分:2)

没有。只有输入的值与您提供的名称一起提交,没有别的;你可以确切地看到URL中提交的内容,就是这样。由于您首先创建了HTML,因此您应该知道其他值是什么。

答案 2 :(得分:1)

简短的回答是:NO

您只能从$_GET superarray获取输入值。

修改。

但是如果你做了这样的事情:

<form action="getsentitem.php" method="get">
   <div  >
   <input  name="query" id="query" class="searchQuery" size="20" value="" type="text" autocomplete="off">
   <input name="queryMeta" value="id:query_class:searchQuery_size:20" type="hidden">
   <input id="searchButton" value="Search" type="submit">
   </div>
</form>

然后你可以在PHP中阅读它:

<?php
if (isset($_GET['queryMeta']))
$queryMeta = explode('_',$_GET['queryMeta']); //splits the string to array('id:query','class:searchQuery','size:20')
?>