代码:
$item_des = implode(',',$this->input->post('item_des'));
$item_cost = implode(',',$this->input->post('item_cost'));
$service_cost = implode(',',$this->input->post('service_cost'));
$total_cost = implode(',',$this->input->post('total_cost'));
$data = array(
'item_des' => $item_des,
'item_cost' => $item_cost,
'service_tax' => $service_cost,
'total_cost' => $total_cost,
);
print_r($data);
$query = $this->db->insert('table_name',$data);
在这段代码中,我有一个表单,我使用jquery / ajax来插入表单值但是当我使用implode函数时它会引发错误信息,即
Message: implode(): Invalid arguments passed
那么,我该如何解决这个问题?请帮助我。
谢谢
答案 0 :(得分:2)
您可以将$ a转换为数组,以确保在使用implode
时始终使用数组implode(',', (array) $a);
其中,
$a=$this->input->post('item_des');
等其他案例。试试这个肯定会运行!
答案 1 :(得分:0)
尝试打印每个变量
var_dump($this->input->post('name')); //all these should be array
最有可能这些字段不是数组。你有隐藏的领域吗?或者你的HTML应该是这样的:
<input name="item_des[]" /> <!-- name should be an array instead of a string name, as shown here -->
<input name="item_des[]" /> <!-- there could be multiple inputs for each of the array you want to `implode` -->
现在HTML将在post中返回一个数组。请Implode()期望数组将其转换为字符串。
答案 2 :(得分:0)
此错误表示您的变量未定义或未定义数组。 在处理数据之前,请确保按照您的想法定义它们。
您可以使用isset()确保定义变量,并使用is_array()确保它们是数组。一旦你知道你的变量是什么,你可以按照它们应该的方式对待它们(可能发送错误的你期望一个正确定义的数组)。
将它们转换为阵列不会对您有所帮助,因为这意味着数据不是您所排除的。如果你的代码可能会有进一步的问题,那么其余的。