xwgcch 发表于 2015-5-12 20:40:04

困扰了我好几天的问题 就是input类里面的post不能接受数组

就是控制器不能用$this->input->post('name'),接收2行input传过来的内容,name一样的话会被覆盖掉
网上查了下,php可以把name设置成name[],在用$_post['name']可以接收
大神可以教教我。。。。。

greedefoxes 发表于 2015-5-14 15:11:20

本帖最后由 greedefoxes 于 2015-5-20 08:56 编辑

同求解答。。我{:soso_e127:}想起来 我也有遇到这个问题。。。就是类似获取checkbox多选框的值。当选中多个,我有时候可以用数组的形式post 有时候用不了,是否因为我引用的bootstrap源文件版本不同,还是因为我不会使用post.                                                                                                                                                                                                                                       
/* View界面*/                                                                                                                                                               <select multiple name="option2" id="option2">
    <?php foreach($users as $user1):?>
       <optionvalue="<?phpecho $user1['id'] ?>">
         <?php   echo $user1['title'];?>
      </option>
   <?php endforeach;?>
</select>
/*Controller端*/
if(!empty($_POST['option2']))
{
      $option2=$_POST['option2'];
      mysql_query('set names utf8');
      $this->db->query("insert into relationship(cid) values('$option2')");
}当我在网页的多选框选中两个进行提交后,只有后一个值插入到了数据库中。额,网页提交时是两个值都提交上去了。。。


smallerpig 发表于 2015-5-14 09:22:44

代码实测,仅供参考
html:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<form action="http://localhost/dilicms/index.php/welcome/getinput" method="post">
    <input type="text" name="name[]"/>
    <input type="text" name="name[]"/>
    <input type="text" name="name[]"/>

    <input type="submit" value="submit"/>
</form>

</body>
</html>

Controller代码:

function getinput(){
    $names = $this->input->post("name");

    var_dump($names);
}

运行结果:

xwgcch 发表于 2015-5-15 17:36:01

class Test_model extends CI_Model{
       
        const TBL_TEST = 'test';

        public function add_test($data){
                return $this->db->insert_batch(self::TBL_TEST,$data);
        }
}

还有

class Test_model extends CI_Model{
       
        const TBL_TEST = 'test';

        public function add_test($data){
                return $this->db->insert(self::TBL_TEST,$data);
        }
}

是不是多维数组和一维数组
我用insert_bacth 就找不到0,1,2键(我插入的是二维数组)

如果这样的话,一维数组和多维数组一起插入的怎么办?

yuzhigang5460 发表于 2015-5-13 08:46:44

CI也一样的啊, 你把name设置成name[], $names = $this->input->post('name'); $names也是数组。

xwgcch 发表于 2015-5-13 20:11:21

不会呀,input里面name设置成name[]这样的话,我就接收不到了!
不加的话后面的会覆盖前面的!
数据库不用改吧?还是insert(self::TABLE);?
我试过很多办法也不行,要上吊了:'(:'(:'(:'(

xwgcch 发表于 2015-5-13 20:31:37

还是不行:'(:'(:'(:'(:'(:'(:'(:'(:'(

xwgcch 发表于 2015-5-14 10:10:47

忘记说了。。。HTML的没有争议的,就是控制器的代码
$data=$this->input->post('name');
$data=$this->input->post('name');
$data=$this->input->post('name');
然后在载入视图的。。。就是没插进数据库
是不是这个原因

xwgcch 发表于 2015-5-14 10:13:34

这样是不是可以加入到一个字段值里?数据库里的格式应该是["name","name"]这个

Closer 发表于 2015-5-14 14:17:14

請考慮提供你測試的代碼
以及想達到的目的(效果)
這樣方便幫你找出原因

greedefoxes 发表于 2015-5-14 15:59:05

本帖最后由 greedefoxes 于 2015-5-14 16:00 编辑

greedefoxes 发表于 2015-5-14 15:11
同求解答。。我想起来 我也有遇到这个问题。。。就是类似获取checkbox多选框的值。当选中多个 ...
是不是我这样子算是同时 重复提交$_POST['option2'],并不是提交了一个数组。这种提交方法是不是不对?下图 这是post的数组,可是我自己都不明白,貌似我这两处代码一样啊,提交的却......
页: [1] 2
查看完整版本: 困扰了我好几天的问题 就是input类里面的post不能接受数组