2015-08-28 52 views
1

如何获取所有输入字段,其中type="text"从一个HTML表单使用php?这是我的代码:如何获取所有输入字段和值

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。

+3

所有提交的数据都将在'$ _POST'数组中。 –

+0

未设置$ _POST [“提交”] – Farhan

回答

1

为什么只是没有输入元素与他们的名字,如

<input name="text[3]" type="text" value=""/> 
<input name="text[4]" type="text" value=""/> 

结合$ _ POST它会在为数组

1

这可以帮助你

$data = $_REQUEST; 
unset($data["submit"]); 
print_r($data); 
+0

是不是返回前3个输入? – Farhan

+0

不,这是我的错。你的代码也可以 –

1

使用DOM文档,你可以调用查找元素的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"]');