我循环遍历$ _POST数组(生成的表单元素),我需要获取foreach循环中下一个元素的键和值。
编辑:答案的元素名称(即canbeanynameABC和canbeanynameXYZ)始终未知。
这是一个示例数组:
Array (
[inputid] => 87 [inputoutputtype] => radio [canbeanynameABC] => radio answer 2
[inputid] => 88 [inputoutputtype] => radio [canbeanynameXYZ] => radio answer 4 )
我的代码在这里
foreach ($_POST as $key => $value) {
switch ($key) {
case "inputid":
echo "<br/>Value of input_id : " . $value;
next($_POST);
echo "<br/>Value of inputoutputtype : " . $value;
next($_POST);
echo "<br/>Value of answer : " . $value;
break;
}
}
我认为通过执行next($ _ POST),指针现在将位于下一个键/值上。
显然它不起作用,我得到以下显示:
Value of input_id : 87
Value of input_output_type : 87
Value of answer : 87
非常感谢任何帮助。感谢
编辑:有人建议我使用数组来组织表单元素/值。我仍然无法弄清楚如何使用数组以便从表单返回每个答案(值),我实际上得到三个值(answer,inputid,inputoutputtype)
编辑:@CBroe我花了一个下午试图找出如何在$ _POST中使用数组。表单可以包含任意数量的元素,这些元素可以是文本,单选,选择/选项,复选框(可以返回多个值)。我从这个表单中获得的每个“值”必须与“inputid”和“inputoutputtype”相关联。这些表单和元素是使用php生成的,所以我正在尝试构建一个php表单处理程序,它将读取任意数量的元素和类型。生成器为每个元素创建唯一的名称,以便不会覆盖值。我想弄清楚如何将数组集成到生成器中,但不确定我是否能够为它们分配行号(即[0],[1] ..)..也许我只是没有看看数组如何适用于我的情况。
更新:好的,现在我正在尝试修改我的php表单处理程序来处理可能有任何名称的元素。我需要能够从表单中填写的元素中读取id,type和value(3个不同的值)。
我正在玩表单(即使它完全生成),但不知道如何命名我的元素
<input type='hidden' name='inputradio[inputid]' value='1'>
<input type='hidden' name='inputradio[inputoutputtype]' value='radio'>
<input type='radio' name='inputradio[output]' value='Radio answer 1'>
<input type='hidden' name='inputradio[inputid]' value='2'>
<input type='hidden' name='inputradio[inputoutputtype]' value='radio'>
<input type='radio' name='inputradio[output]' value='Radio answer 2'>
<input type='hidden' name='inputtext1[inputid]' value='3'>
<input type='hidden' name='inputtext1[inputoutputtype]' value='text'>
<input type='text' name='inputtext1[output]' value='Text answer 1'>
<input type='hidden' name='inputtext2[inputid]' value='4'>
<input type='hidden' name='inputtext2[inputoutputtype]' value='text'>
<input type='text' name='inputtext2[output]' value='Text answer 2'>
如果方向改变了,我应该更改这篇文章的标题吗?
由于 ç
答案 0 :(得分:0)
$ _POST中的条目只有两个属性,键和值。我不知道你的示例阵列在哪里,但它并没有像那样工作。因此,如果我有一个全部共享相同名称的单选按钮组,我将获得name-&gt;值对。
如果我创建了以下表单,并且我在单选按钮组中以值a提交了它:
<form method="POST" >
<input type="text" name="textbox" value="test"><br/>
a.<input type="radio" name="rd" value="a"><br/>
b.<input type="radio" name="rd" value="b"><br/>
c.<input type="radio" name="rd" value="c"><br/>
<input type="submit" value="submit">
</form>
我的$ _POST将包含以下值:
Array
(
[textbox] => test
[rd] => a
)
如果我试图单步执行我的数组,我会这样做:
for ($_POST as $key->$value) {
echo $key . " = " . $value . "\n";
}
哪个会给我以下输出:
textbox = test
rd = a
你能告诉我你要解决的问题是什么,因为从某些其他语言或框架的角度来看,你似乎正在接近这个问题,或者你可能希望在PHP中使用其他一些不是$ _POST?