如何使用php从HTML表单获取type="text"
的所有输入字段?这是我的代码:
if (isset($_POST['submit'])) {
$dom = new DOMDocument();
print "<pre>";
foreach($dom->getElementsByTagName("input") as $inputs) {
print $inputs->value . " / " . $inputs->name . "<br/>";
}
print "</pre>";
}
我也会从每个输入字段获取名称和值。如果我运行我的代码,我什么也得不到。这是我的HTML代码:
<form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">
<input name="1" type="text" value="Can you help me?"/>
<input name="2" type="text" value="Thanks"/>
<input name="3" type="text" value=""/>
<!--and a lot more input fields.-->
<input name="submit" type="submit" value=""/>
</form>
我是php和DOM的新手。
答案 0 :(得分:1)
这可能对您有所帮助
$data = $_REQUEST;
unset($data["submit"]);
print_r($data);
答案 1 :(得分:1)
为什么不将输入元素与其名称(如
)组合在一起<input name="text[3]" type="text" value=""/>
<input name="text[4]" type="text" value=""/>
它将以$ _POST作为数组
答案 2 :(得分:1)
使用DOMDocument,您可以调用xpath查询来查找以下元素: -
$str='
<form action="" method="post">
<input name="1" type="text" value="Can you help me?"/>
<input name="2" type="text" value="Thanks"/>
<input name="3" type="text" value=""/>
<!--and a lot more input fields.-->
<select name="fred"><option value=1>1</select>
<input type="checkbox" name="bert" value=1>
<input type="radio" name="wilma" value=1 />
<textarea name="sue"></textarea>
<input name="submit" type="submit" value=""/>
</form>';
$dom = new DOMDocument;
$dom->loadHTML( $str );
$xpath = new DOMXpath( $dom );
$col=$xpath->query('//form/input|//form/textarea');
if( is_object( $col ) ){
foreach( $col as $node ) echo $node->tagName.' '.$node->nodeValue.'<br />';
}
您可以使用竖线字符扩展xpath查询,然后指定新查询,例如|//form/button
等
要获取类型为文本的特定字段,查询将为: -
$col=$xpath->query('//form/input[@type="text"]');