0

我对 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 或其大小。

4

3 回答 3

3

不它不是。只有 name=>value 对通过您选择的方法 (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令牌通常也以这种方式发送。


于 2013-06-10T13:33:28.307 回答
2

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

于 2013-06-10T13:32:56.573 回答
1

简短的回答是:NO

您只能从超数组中获取输入的值$_GET

编辑。

但是,如果您执行以下操作:

<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')
?>
于 2013-06-10T13:32:34.990 回答