我收到了这张表格:
<form method="post" action="" accept-charset="utf-8">
<p>
<label>first_field</label><br />
<input type="text" id="first_field" name="points[]" /><br />
<input type="radio" value="inside" name="group_1" checked /><br />
<input type="radio" value="outside" name="group_1"><br />
</p>
<p>
<label>second_field</label><br />
<input type="text" id="second_field" name="points[]" /><br />
<input type="radio" value="inside" name="group_2" checked /><br />
<input type="radio" value="outside" name="group_2"><br />
</p>
</form>
我想要完成的是检查内部或外部是否被检查,如果在外面我检查给定文本输入的乘法点为1.5。顺便说一句,这需要用PHP计算。
我该怎么做?
Array
(
[bonus] => Array
(
[points] => Array
(
[0] => 0
[1] => 0
[2] => 0
[3] => 0
[4] => 0
[5] => 0
[6] => 0
[7] => 0
[8] => 0
[9] => 0
[10] => 0
[11] => 0
[12] => 0
[13] => 0
[14] => 0
)
[group] => Array
(
[0] => inside
[1] => outside
[2] => outside
[3] => inside
[4] => inside
[5] => inside
[6] => inside
[7] => inside
[8] => outside
[9] => inside
[10] => inside
[11] => inside
[12] => outside
[13] => inside
[14] => inside
)
)
)
以上是print_r($ _ POST)
的结果现在我要将点数组与Group数组进行比较/删除,所以:
points [0]与group [0]等“连接”?
答案 0 :(得分:67)
事实证明,您可以使用HTML表单对字段进行分组。在这里查看此代码:(特别注意name
属性)
<form method="post" action="" accept-charset="utf-8">
<p>
<label>first_field</label><br />
<input type="text" id="first_field" name="field[1][points]" /><br />
<input type="radio" value="inside" name="field[1][group]" checked /><br />
<input type="radio" value="outside" name="field[1][group]"><br />
</p>
<p>
<label>second_field</label><br />
<input type="text" id="second_field" name="field[2][points]" /><br />
<input type="radio" value="inside" name="field[2][group]" checked /><br />
<input type="radio" value="outside" name="field[2][group]"><br />
</p>
</form>
如果没有填写任何内容,这将产生这样的POST数组:
Array
(
[field] => Array
(
[1] => Array
(
[points] =>
[group] => inside
)
[2] => Array
(
[points] =>
[group] => inside
)
)
)
我希望这能回答你的问题,这是一个很好的小技巧,我没有看到很多其他人讨论过。需要注意的一点是,您需要在任何一组括号中手动指定ID号。您只能使用[]
作为最后一组括号。
答案 1 :(得分:2)
我正在this answer进行扩展,因为我花了一些时间来跟踪将从表单中解析数据的PHP代码。
在HTML中使用此技术将产生键值对数组。
<input type="text" id="first_field" name="field[1][points]" /><br />
<input type="radio" value="inside" name="field[1][group]" checked /><br />
<input type="radio" value="outside" name="field[1][group]"><br />
这就是我用PHP来解析数组的方法。
foreach ($_POST as $record => $detail) {
// The submit button from my HTML form was POSTing data
// so I used an if statement to remove it from the result set
if(empty($firstRow))
{
$firstRow = 1;
}
else
{
// since $detail is still an array, you have to loop through it again
foreach ($detail as $key => $value) {
echo $key."<br/>";
// $key would contain the key value (1 or 2)
echo $value['points']."<br/>";
echo $value['group']."<br/><br/>";
}
}
}
希望这个答案有所帮助!
答案 2 :(得分:0)
您只需要捕获$_POST
变量中的内容,然后对其进行处理。如果您在填写表单后执行了var_dump($_POST)
,那么您应该更好地了解该怎么做。