用户
 找回密码
 入住 CI 中国社区
搜索
查看: 1855|回复: 5
收起左侧

[HELP] Form_validation后 _POST的数组丢失

[复制链接]
发表于 2014-11-25 22:26:13 | 显示全部楼层 |阅读模式
本帖最后由 世云哥 于 2014-11-25 22:35 编辑

...
   if ($this->form_validation->run() === TRUE)
   {
   
    $groupData = $_POST['groups'];

...


一组checkbox,name=‘groups[]’,用来获取用户的组设置,其值为(1,2)
如果把红色的代码放在if语句之前,可以取得groups的值。
如果放在现在的位置,或者后面,则empty( $groupData)为true。该数组丢失了。其他_POST的值如:username什么的都在。
请问是什么原因?




CI3.x-dev
发表于 2014-11-26 09:17:13 | 显示全部楼层
本帖最后由 Closer 于 2014-11-26 09:20 编辑

你有勾選任何一個 form 內的 checkbox 並送出嗎?

其實這種沒全貼很難判定
很多意外的情況都建立在開發者
自己打錯、重複變量、取值錯誤...等等錯誤

所以你得釋出該頁面所使用的程式碼
越完整越好

 
发表于 2014-11-26 11:55:48 | 显示全部楼层
checkbox
必须勾选后,POST才能得到数据
 楼主| 发表于 2014-11-27 10:20:41 | 显示全部楼层
沟选了呢。
如果在$this->form_validation->run()之前先去取post的checkbox数组可以取得。如果在之后就得到空值了
 楼主| 发表于 2014-11-27 10:21:48 | 显示全部楼层
应该得到的值是
$groupData=array(1,2)
 楼主| 发表于 2014-11-27 10:27:38 | 显示全部楼层
我是在扩展这个不错的程序的时候遇到的https://github.com/benedmunds/CodeIgniter-Ion-Auth
在修改用户的时候选择不同的用户组,结果因为取得的值为空,所以修改不了。我的做法是把 $groupData = $_POST['groups'];放在run()之前,这样工作正常了。但是我想知道是什么原因。

本版积分规则