hahaxo 发表于 2011-11-15 22:56:45

[php] post接收数组处理

新手,所以问的问题比较低级。望解答。谢谢了。

<form action="" method="post"><input type="text" value="" name="text[]">
<select name="cate[]">
    <option value="one">one</option>
    <option value="two">two</option>
    <option value="three">three</option>
</select><br>

<input type="text" value="" name="text[]">
<select name="cate[]">
    <option value="one">one</option>
    <option value="two">two</option>
    <option value="three">three</option>
</select><br>

<input type="text" value="" name="text[]">
<select name="cate[]">
    <option value="one">one</option>
    <option value="two">two</option>
    <option value="three">three</option>
</select><br>

<input type="text" value="" name="text[]">
<select name="cate[]">
    <option value="one">one</option>
    <option value="two">two</option>
    <option value="three">three</option>
</select>
<input type="submit" name="submit" value="提交">
</form>

http://i.6.cn/cvbnm/e4/b8/92/cc57963553dc477f3a111f8803cedca5.jpg

希望输出(three没有,就不显示。同时 text归属到各自的cate下面):

http://i.6.cn/cvbnm/f3/3f/82/fb8750f8e46e42621a6f7c1fbe3ca21a.jpg

hahaxo 发表于 2011-11-16 11:28:22

:o
.....

孤月蓝风 发表于 2011-11-16 12:49:29

写了一大堆,我愣是没怎么看懂到底说的什么和要做什么……

孤月蓝风 发表于 2011-11-16 12:54:34

终于看明白了,我试试,成功的话告诉你

hahaxo 发表于 2011-11-16 13:02:30

好的。谢谢。cate 的数量是从数据库取出来的,不一定固定是3个

孤月蓝风 发表于 2011-11-16 13:42:00

由于我也是新手,所以写的麻烦了很多……大概方法就是这样的,代码你再优化下

php提交页面代码:

        $data = $_POST;
        $one = '';
        $two = '';
        $three = '';
        for ($i=0;$i<4;$i++)
        {
                if ($data['cate'][$i] == 'one')
                {
                        $one = $one.$i.',';
                }
                if ($data['cate'][$i] == 'two')
                {
                        $two = $two.$i.',';
                }
                if ($data['cate'][$i] == 'three')
                {
                        $three = $three.$i.',';
                }
        }
        $one = substr($one,0,strlen($one)-1);
        $two = substr($two,0,strlen($two)-1);
        $three = substr($three,0,strlen($three)-1);
        //echo $one."<br />".$two."<br />".$three."<br />";
        $one = explode(",",$one);
        $two = explode(",",$two);
        $three = explode(",",$three);


HTML输出页面代码:

<table border="solid,1px">
    <tr>
      <td>one</td>
      <td>two</td>
      <td>three</td>
    </tr>
    <tr>
      <td><?=$data['text'][$one];?></td>
      <td><?=$data['text'][$two];?></td>
      <td><?=$data['text'][$three];?></td>
    </tr>
    <tr>
      <td><?=$data['text'][$one];?></td>
      <td><?=$data['text'][$two];?></td>
      <td><?=$data['text'][$three];?></td>
    </tr>
    <tr>
      <td><?=$data['text'][$one];?></td>
      <td><?=$data['text'][$two];?></td>
      <td><?=$data['text'][$three];?></td>
    </tr>
    <tr>
      <td><?=$data['text'][$one];?></td>
      <td><?=$data['text'][$two];?></td>
      <td><?=$data['text'][$three];?></td>
    </tr>
</table>


孤月蓝风 发表于 2011-11-16 13:42:59

实现效果

hahaxo 发表于 2011-11-16 14:05:35

hehe

for($i=0;$i<=3;$i++){
      $postdata[$_POST['cate'][$i]][]=$_POST['text'][$i];
}
print_r($postdata);
页: [1]
查看完整版本: [php] post接收数组处理