2012-03-30 83 views
0

我想弄清楚为什么当它获取到我的控制器中的getLast5Messages函数时,它会返回以下内容,但在javascript中的响应中会放入页面的html。我不明白。不显示数据数组

[{"id":"1","subject":"Testing","firstName":"Kevin","lastName":"Smith","dateSent":"March 30th, 2012","messageRead":"0"}] 

JS:

function getMessages() 
{ 
$('.mail').empty(); 
$.get('dashboard/getLast5Messages', function(data) 
{ 
    if(data.length > 0) 
    { 
     $.each(data, function(x) 
     { 
      if (data[x]['messageRead'] == 0) 
      { 
       $('.mail').append('<li><a href="pmsystem/viewmessage/'+data[x]['id']+'"><strong>Received: '+data[x]['dateSent']+'</strong><small>'+data[x]['subject']+'</small><small>From: '+data[x]['firstName']+' '+data[x]['lastName']+'</small></a></li>'); 
      } 
      else 
      { 
       $('.mail').append('<li class="read"><a href="pmsystem/viewmessage/'+data[x]['id']+'"><strong>Received: '+data[x]['dateSent']+'</strong><small>'+data[x]['subject']+'</small><small>From: '+data[x]['firstName']+' '+data[x]['lastName']+'</small></a></li>');  
      } 
     }); 
    } 
    else 
    { 
     $('.mail').append('<li>No Messages</li>'); 
    } 
}, 'json'); 
} 

PHP:

public function getLast5Messages() 
{ 
    echo $this->pmmodel->getLast5Messages($this->session->userdata('userID')); 
} 

/** 
* Retrieve last 5 messages in inbox 
* 
* @param integer 
* @return object 
*/ 
function getLast5Messages($userID) 
{ 
    // Check args 
    if (!is_numeric($userID)) 
    { 
     throw new Exception('Non-numeric $userID provided to getLast5Messages()'); 
    } 

    $this->db->select('pm.id'); 
    $this->db->select('pm.subject'); 
    $this->db->select('users.firstName'); 
    $this->db->select('users.lastName'); 
    $this->db->select("DATE_FORMAT(pm.dateSent, '%M %D, %Y') AS dateSent", false); 
    $this->db->select('pmr.messageRead'); 
    $this->db->from('usersPersonalMessages AS pm'); 
    $this->db->join('users', 'users.userID = pm.senderID'); 
    $this->db->join('usersPersonalMessagesRecipients AS pmr', 
     'pm.id = pmr.usersPersonalMessagesID'); 
    $this->db->where('pmr.userID', $userID); 
    $this->db->order_by('pm.dateSent', 'desc'); 
    $this->db->limit(5); 
    $query = $this->db->get(); 
    if ($query->num_rows() > 0) 
    { 
     return $query->result(); 
    } 
    return array(); 
} 

我还是没能想出解决办法?有没有人有任何想法可能造成这种情况?

+0

你是什么意思“在它把页面的HTML的JavaScript反应”?你能更清楚地表达你的问题吗? – 2012-03-30 20:21:59

+0

查看开发人员控制台中的XHR请求,以查看从服务器返回的究竟是什么。看起来像你的'getLast5Messages()'PHP函数可能被封装在一个HTML文档中。 – Jasper 2012-03-30 20:22:04

+0

它不是。 http://www.kansasoutlawwrestling.com/kowmanager/dashboard/getLast5Messages – 2012-03-30 20:24:44

回答

0

这是

public function getLast5Messages() 
{ 
    echo json_encode($this->pmmodel->getLast5Messages($this->session->userdata('userID'))); 
}