嗨我有一个非常困难的时间应该是一个简单的问题。从CodeIgniter 1.7开始,'$ this-> input-> post();'支持的数组,但我不能因为某些原因将值存入数组中。我有一个存储到一个数组7个复选框“服务[]”,你可以通过这个例子视图中看到:出于某种原因,无法将数组中的复选框值存储到数据库!
<?php $servicesdata = array (
'name' => 'services[]',
'value' => 'in_home_care',
);
echo form_checkbox($servicesdata, set_checkbox('services[]', 'in_home_care', FALSE)); ?>
我很确信这是正确的方式,因为形式也很好的验证,如果出现错误。现在我开始在存储值时遇到问题。我有7列需要有某种价值...在这一点上,我不在乎,但理想情况下它会是一个布尔值(二进制也可以)。以下是我在我的控制器,每个人都声称工作得这么远,但少了点:
$c = new Client($servicesdata);
$c->first_name = $this->input->post('first_name', TRUE);
$c->in_home_care = $this->input->post('services[in_home_care]');
你可以看到我穿上了完美的作品,并插入到一个VARCHAR类型,而数组赢得一个例子字符串不管进入数据库。我觉得我在这里错过了一些东西 - 也就是阵列中的“价值”,但我不确定该从哪里出发。任何帮助将不胜感激,因为我可以工作的唯一方法牺牲了我的复选框验证! :(
+1对老问题有趣的方法。 – NotMe 2010-07-13 00:36:21
非常好!基本上,我把你的顶线和添加'[]'服务结束。我打印出阵列,看起来很棒。现在,如果你不介意帮助他们,那么如何将这7个值传递到他们各自的专栏?根据CI手册,我的'post()'方法是正确的,但我没有太多的运气...... – mpoplin 2010-07-13 06:37:39
您可以通过使用set_value()来从您的复选框中获得设定值(我认为你想要的) )函数,即set_value('services []'),然后将其传递给字符串/模型/会话。这里还有更多; http://codeigniter.com/user_guide/libraries/form_validation.html#arraysasfields – 2010-07-13 12:19:21