本博客文章已转移到独立博客,请点击做最好的三三查看全文。
7
16
2012
4

神奇的POST数组

本博客文章已转移到独立博客,查看本文请点击做最好的三三查看全文。

这两天在研究discuz的后台,发现一些很神奇的东西,稍微百度了一下,发现大家对这个提得比较少。那么我就来说说吧。

我们通常用的post表单一般是这个样子的(我没有关闭表单</form>的习惯,大家还是加上吧……):

<form method="post" action="debug.php">
<input value="hello1" name="hello1">
<input value="hello2" name="hello2">
<input value="提交" type="submit">

嗯,为了方便我们把debug.php代码也贴出来(其实就一句……):

print_r($_POST);

好了,那么我们post一下,得到的是这样的结果:

Array
(
    [hello1] => hello1
    [hello2] => hello2
)

这样的post没有什么好说的,大家都知道。好了,接下来是高级操作了——如果把表单改成这个样子呢:

<form method="post" action="debug.php">
<input value="hello" name="hello[word]">
<input value="hello" name="hello[wolrd]">
<input value="hello" name="hello[test]" type="submit">
</form>

好了,我们来post一下,竟然——

Array
(
    [hello] => Array
        (
            [word] => hello
            [wolrd] => hello
            [test] => hello
        )

)

对啦~在post结果里面我们发现了数组~

那么这个代码可以再发扬一下,大家体会体会吧~比如这样:

<form method="post" action="debug.php">
<input name="foo[]" type="checkbox" value="thisone">
<input name="foo[]" type="checkbox" value="thatone">
<input name="foo[]" type="checkbox" value="another">
<input name="foo[]" type="checkbox" value="and this">
<input name="foo[]" type="checkbox" value="and more">
</form>

这个代码能够返回这样的结果~

Array
(
    [foo] => Array
        (
            [0] => another
            [1] => and this
        )

)

这样只需要遍历一下$_POST['foo']数组就能够得到所有被用户勾选的选项啦~厉害吧~

(用php这么久了也才发现这个玩意我真是失败啊……)

本博客内容除标明外均为原创;转载请保留原文地址或pingback;所有代码所有权归作者所有;在此公布的所有作者标明为本人的代码均可非商业自由使用。
本博客文章已转移到独立博客,发表评论请点击做最好的三三查看全文。
Category: PHP | Tags: php post 数组 | Read Count: 2020
doyle 说:
Jul 16, 2012 01:35:19 PM

html form表单本来就设计如此...

Avatar_small
三三 说:
Jul 16, 2012 02:12:49 PM

……所以说我失败啊~现在才知道这种写法……每次都是遍历post数组然后判定key……麻烦死了……

米久娘 说:
Dec 27, 2012 02:09:57 PM

很好奇之前博主是怎么获取到多选按钮的值呢...用很多name嘛?

Avatar_small
三三 说:
Dec 28, 2012 08:09:46 PM

多选按钮指的是什么?checkbox么?那样已经在范例里面有了啊。


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter

Host by is-Programmer.com

Power by Chito 1.3.1 beta

| Theme: Aeros 2.0 by TheBuckmaker.com