如何按类型读取表单的输入


How to read the form's inputs by type?

我有一个表单:

<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>

并且希望按类型(单选)读取数组的所有输入。我知道怎么看名字,但怎么看类型呢?

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

让你的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']数组,其中包含所有的无线电字段

如果你正在寻找像GetAllInputsOfType("radio")这样的PHP函数,那么你将找不到它(除非你可以用DOM做一些花哨的事情,比如JS;

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

然后你可以遍历数组$_GET或$_POST查找以radio_开头的元素…

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