如何按类型阅读表单的输入?

时间:2011-10-26 07:01:23

标签: php arrays forms post

我有一张表格:

<form name="form1" method="post" action="form_to_write.php">
    <h4>q1</h4>
    <input type="radio" name="a1" value="someValue1" />someValue1<br />
    <input type="radio" name="a1" value="someValue2" />someValue2<br />
    <input type="radio" name="a1" value="someValue3" />someValue3
    <h4>q2</h4>
    <input type="radio" name="a2" value="someValue4" />someValue4<br />
    <input type="radio" name="a2" value="someValue5" />someValue5<br />
    <input type="radio" name="a2" value="someValue6" />someValue6
    <h4>q3</h4>
    <input type="radio" name="a3" value="someValue9" />someValue9<br />
    <input type="radio" name="a3" value="someValue7" />someValue7<br />
    <input type="radio" name="a3" value="someValue8" />someValue8
    <input type="submit" value="submit" name="submit"/>
</form>

想要按类型(无线电)读取所有数组输入。我知道,如何按名称阅读,但是如何按类型阅读?

4 个答案:

答案 0 :(得分:3)

提交表单时,不会将输入type属性发送到服务器。仅发送namevalue。您需要使用有用的name来跟踪服务器上的内容。

答案 1 :(得分:1)

让你的form_to_write.php像这样:

<?php
print_r($_POST);

并研究它的输出。
它包含您可以从表单中获得的所有内容。您可以自由选择使用的内容。享受。

由于您的问题是一个问题很严重的完美示例,我只能猜测您的真实需求

似乎你想得到一个包含所有单选按钮的数组。你仍然可以使用名字来做到这一点。

使你的单选按钮名称如下

<input type="radio" name="radios[a1]" value="someValue1" />someValue1<br />

<input type="radio" name="radios[a2]" value="someValue4" />someValue4<br />

<input type="radio" name="radios[a3]" value="someValue9" />someValue9<br />

您将能够访问包含所有无线电字段的$_POST['radios']数组

答案 2 :(得分:1)

如果您正在寻找像GetAllInputsOfType("radio")这样的PHP函数,那么您将无法找到它(除非您能像DOM那样对DOM有所了解; maybe this will help?)。

我在类似情况下所做的是根据类型重命名我的输入字段,因此你可以使用radio_a1,radio_a1,radio_a3和text_a4,memo_a5,listbox_a6等(而且,btw,而不是a1,a2,a3)。使用一些有意义的名称,而不是a1,a2,a3; - )

然后你可以循环遍历数组$ _GET或$ _POST,寻找以radio_开头的元素......

答案 3 :(得分:0)

你可以使用类似Zend_Form的东西跟踪它(甚至可以做验证工作等)。但是你不能只用php来获取表单字段的类型 - 你需要在JS中做一些事情,而这些事情在客户端并且可能不受信任。