Php Datatable Codeigniter中的JSON响应无效
我需要一个专家来解决这个问题。这是我加载JSON的控制器Php Datatable Codeigniter中的JSON响应无效,php,jquery,json,datatable,Php,Jquery,Json,Datatable,我需要一个专家来解决这个问题。这是我加载JSON的控制器 foreach ($result->result() as $row){ $customer = $row->customer_name; $ipull = $row->ip; if ($this->mikrotikext->mikrotik_connect($ip,$username,$password,$port) == true){ $PING = $this-&
foreach ($result->result() as $row){
$customer = $row->customer_name;
$ipull = $row->ip;
if ($this->mikrotikext->mikrotik_connect($ip,$username,$password,$port) == true){
$PING = $this->routerosapi->comm("/ping", array(
"address" => $ipull,
"count" => "2"
));
if( $PING['0']['packet-loss'] == 0){
$status = "Online";
} else {
$status = "Offline";
}
} else {
$this->session->set_flashdata('Connect_False','Failed To get');
redirect('tmikrotik/router_list');
}
$data = array(
'customer' => $customer,
'address' => $ipull,
'status' => $status
);
print json_encode($data);
}
这是JSON响应:
{"customer":"Trakindo Utama","address":"192.168.1.3","status":"Online"}{"customer":"Adira Finance","address":"192.168.1.10","status":"Offline"}{"customer":"Mandala Finance","address":"192.168.1.50","status":"Online"}
问题是,当我将其加载到数据表中时,会显示无效的JSON响应。这是我的jQuery代码
$function{
var table=$cpe-status.DataTable{
fixedColumns:对,
fixedHeader:true,
页长:10,
是的,
阿贾克斯:{
网址:./cpe,
类型:GET,
数据中心:
},
是的,
AO列:[
{数据:客户,标题:主机},
{数据:地址,标题:客户名称},
{数据:状态,标题:已注册}
//{数据:状态,标题:状态}
]
};
//设置间隔函数{
//table.ajax.reload;
// }, 10000;
}
您正在循环内打印每个结果。您应该将结果打印为1个数组
/* ============= Declare the data outside the loop ============= */
$data = array();
foreach ($result->result() as $row){
$customer = $row->customer_name;
$ipull = $row->ip;
if ($this->mikrotikext->mikrotik_connect($ip,$username,$password,$port) == true) {
$PING = $this->routerosapi->comm("/ping", array(
"address" => $ipull,
"count" => "2"
));
if( $PING['0']['packet-loss'] == 0){
$status = "Online";
} else {
$status = "Offline";
}
} else {
$this->session->set_flashdata('Connect_False','Failed To get');
redirect('tmikrotik/router_list');
}
/* ============= Push each result on an array ============= */
$data[] = array(
'customer' => $customer,
'address' => $ipull,
'status' => $status
);
}
/* ============= print result (outside the loop ) ============= */
print json_encode($data);
这绝对是无效的JSON。返回的JSON对象之间应该有逗号,整个过程可能是一个数组。您应该检查json_encode的具体功能。谢谢您的回复,那么我该怎么做?我需要的是解决方案,而不是解释。我只是一个新手:@EdoVV请检查我下面的答案。[{客户:特拉金多乌塔马,地址:192.168.1.3,状态:在线][{客户:特拉金多乌塔马,地址:192.168.1.3,状态:在线},{客户:阿迪拉金融,地址:192.168.1.10,状态:离线}][{客户:特拉金多乌塔马,地址:192.168.1.3,状态:在线},{customer:Adira Finance,地址:192.168.1.10,状态:Offline},{customer:Mandala Finance,地址:192.168.1.50,状态:Online}]…响应显示为这样,仍然无效jsonDid您在循环外声明$data吗?您还应该在循环外打印$data。是的,我在循环前声明了$data,但结果是sameYes.Controller。