Php Datatable Codeigniter中的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-&

我需要一个专家来解决这个问题。这是我加载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->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。