我有一个表单:
<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
属性发送给服务器。只发送name
和value
。您将需要使用有用的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在客户端,可能不受信任。