您如何获得所有输入字段和值

How can you get all inputs fields and the value

如何从具有 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 的新手。

这可能对您有所帮助

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

为什么不将输入元素与其名称结合起来,例如

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

它将作为数组出现在 $_POST 中

使用 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"]');