2015-08-28 32 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"]');