如何获取所有输入字段和值

时间:2015-08-28 13:36:31

标签: php html dom domdocument

如何使用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的新手。

3 个答案:

答案 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"]');