作者liaosankai (低温烘焙)
看板PHP
标题Re: [请益] 如何读取php内物件的名称?
时间Sat Jun 18 11:48:58 2011
用序号来产生当做input的name,像是username1、username2…倒也不算是不行。
只不过这样的作法有点不太漂亮,应该要善用阵列方式的name,下列我就贴个范例
[a.html][b.php]的程式码部分。
====================================
[a.html] ※当然这些HTML你也可以用PHP去产生
<form action="b.php" method="post">
<!--第一组资料-->
是否参加:<input name="join[]" type="checkbox" value="1" checked="checked" />
人物名称:<input name="username[]" type="text" value="Jack" />
<hr />
<!--第二组资料-->
是否参加:<input name="join[]" type="checkbox" value="1" />
人物名称:<input name="username[]" type="text" value="Jennifer" />
<input type="submit" value="送出" />
</form>
===================================
[b.php]
//我们来看一下$_POST的资料结构
print_r($_POST);
/*输出结果:
Array
(
[join] => Array
(
[0] => 1
)
[username] => Array
(
[0] => Jack
[1] => Jennifer
)
)*/
很好,$_POST的资料已经变成阵列了,不过这样的阵列结构并不适合
我们处理,我们希望他能够是同组资料为一个阵列(ROW),所以必需将
阵列变个小变化
/**
* 旋转阵列
*/
function rotate($source_array, $keep_keys = TRUE){
$new_array = array();
foreach ($source_array as $key => $value){
$value = ($keep_keys === TRUE) ? $value : array_values($value);
if(is_array($value)){
foreach ($value as $k => $v){
$new_array[$k][$key] = $v;
}
}
}
return $new_array;
}
//将$_POST资料进行旋转
$data = rotata($_POST);
print_r($data);
/*输出结果:
Array
(
[0] => Array
(
[join] => 1
[username] => Jack
)
[1] => Array
(
[username] => Jennifer
)
)*/
现在阵列已变成适合我们处理的结构了
foreach($data as $key => $row){
echo "第{$key}笔资料";
echo '是否参加:' . ($row['join'])? '是': '否';
echo "人物名称:{$row['username']}";
}
--
欢迎来我的网志看看
@
http://liaosankai.pixnet.net/blog
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.240.225.236
1F:推 kusoayan:推 06/18 12:12
2F:推 mrbigmouth:坦白说 我觉得这只是习惯问题而已 谈不上比较漂亮啦... 06/18 12:41
3F:→ mrbigmouth:如果要做的是"从资料库中读取一堆多选题"... 06/18 12:42
4F:→ mrbigmouth:终究还是要在input的name上做功夫的 06/18 12:43
5F:→ mrbigmouth:那还不如一开始就习惯改input name 06/18 12:44
6F:推 mrbigmouth:不过现在这题好像用阵列比较好= = 都是checkbox... 06/18 13:14
7F:→ mrbigmouth:刚刚才发现...这样中间没选後面就全读不到了XDDrz 06/18 13:15
8F:推 a3343554:对= = 06/18 13:16
9F:推 appleboy46:中间如果没有选 checkbox 会有问题 06/18 13:38
10F:→ liaosankai:XD 实作上当然有些要考虑地方,旋转函式也可以再加强 06/18 14:15