2010-07-13 77 views
0

加載失敗 - 參數:[Object api = Object,Object request = Object reader = Object scope = Object,Object tId = 0 status = 200 statusText = OK ,語法錯誤:在屬性列表之後的屬性列表消息=缺失}後缺少}}ExtJS:missing}在屬性列表後,但我沒有看到任何代碼錯誤

我通過向我的商店添加異常但是在我的代碼中看不到任何實際錯誤...可能是另一組眼睛將有所幫助。

PHP:

case 'messages': 
        if(isset($_SESSION['id'])){ 
      $stmt = $dbh->prepare("Select ID, ReceivedAt, Message from SystemEvents Limit 100"); 
          $stmt->execute(); 

      while($tmp = $stmt->fetch()){ 
       $y .= '{"ID":"'.$tmp['ID'].'","ReceivedAt":"'.$tmp['ReceivedAt'].'","Message":"'.$tmp['Message'].'"},'; 
      } 
      $y = trim($y,','); 
      if(isset($_REQUEST['callback'])){ 
       echo $_REQUEST['callback'].'({"dates":['.$y.']});'; 
      }else{ 
       echo '{"dates":['.$y.']}'; 
      } 
     }else{ 
      if(isset($_REQUEST['callback'])){ 
            echo $_REQUEST['callback'].'({success: false, data{"error_title": "Error", "errormsg": "Cannot display dates"}})'; 
          } 
          else{ 
            echo '{success: false, data{"error_title": "Error", "errormsg": "Cannot display dates"}}'; 
          } 
        } 
      break; 

ExtJS的:

Ext.onReady(函數(){

var logStore = new Ext.data.JsonStore({ 
    autoLoad: true, 
    url: 'inc/interface/config.php?list=messages', 
    root: 'dates', 
    idProperty: 'ID', 
    fields: ['ID', 'ReceivedAt', 'Message'], 
    listeners: { 
       loadexception: function() { 
        console.log('load failed -- arguments: %o', arguments); 
       } 
     } 
}); 

var dateStore = new Ext.data.JsonStore({ 
    autoLoad: true, 
    url: 'inc/interface/config.php?list=date_options', 
    root: 'dates', 
    idProperty: 'ID', 
    fields: ['ID', 'ReceivedAt'], 
    listeners: { 
       loadexception: function() { 
        console.log('load failed -- arguments: %o', arguments); 
       } 
     } 
}); 

var dateSelect = new Ext.form.DateField({ 
    fieldLabel: 'Pick a date', 
    width: 190, 
    align: 'center', 
    frame: true 
}); 

var dateCombo = new Ext.form.ComboBox({ 
    store: dateStore, 
    mode: 'local', 
    valueField: 'ID', 
    displayField: 'ReceivedAt', 
    editable: false, 
    emptyText: 'Select a Date', 
    width: 250, 
    listeners:{ 
     activate: function(){ 
      dateStore.reload(); 
     } 
    } 
}); 

var searchField = new Ext.form.TextField({ 
    fieldLabel: 'Search Criteria', 
    emptyText: 'Search....', 
    width: 190, 
    frame: true 

}); 

var searchButton = new Ext.Button({ 
    text: 'Search', 
}); 

var clearButton = new Ext.Button({ 
    text: 'Clear', 
    tooltip: 'Clears all your search data' 
}); 

var searchPanel = new Ext.Panel({ 
    layout: 'form', 
    region: 'east', 
    width: 300, 
    collapsible: true, 
    alignButton: 'right', 
    title: "Search Panel", 
    items: [dateSelect, dateCombo, searchField], 
    buttons: [clearButton, searchButton] 
}); 


var logGrid = new Ext.grid.GridPanel({ 
    region: 'center', 
    store: logStore, 
    colModel: new Ext.grid.ColumnModel({ 
     columns: [{ 
      id: 'received', 
      header: 'Received', 
      dataIndex: 'ReceivedAt', 
      width: 250 
     },{ 
      id: 'message', 
      header: 'Logs', 
      dataIndex: 'Message', 
      width: 750 
     }] 
    }), 
}); 


var mainViewport = new Ext.Viewport({ 
    layout: 'border', 
    items: [logGrid, searchPanel] 
}); 

});

我不認爲發佈我的PHP的其餘部分將是相關的,因爲它的所有作品,但希望有人可以發現我的壞眼睛不能。

回答

2

我看到一個額外的逗號這裏:

var searchButton = new Ext.Button({ 
    text: 'Search', 
}); 

同樣在LogGrid。這可能是它

編輯:從PHP發回的響應並不像這將是有效的JSON,如果有一個錯誤data{"error_title"是錯誤的,應該是data:{"error_titel"

你真應該看看建築對象/數組在PHP中使用json_encode回顯這些內容,而不是手動構建JSON。

+0

奇怪的是,我可以拿出: 「消息」:「‘[消息‘’$ tmp中。’」 在PHP和網格將顯示的日期就好了。我必須查看json_encode。 – TBell 2010-07-13 18:15:53

+1

好吧,'Message'可能包含一個引號或其他在JSON/JavaScript字符串文字中特殊的字符。無法爲上下文轉義字符是安全漏洞的一個重要來源,這就是爲什麼您希望使用'json_encode'來創建輸出並且絕對不是字符串吊銷的原因。 – bobince 2010-07-13 18:21:49

+0

下面的任何事情會被認爲是一個特殊的人物嗎?這只是你的基本dhcp日誌。 我已經把問題歸結到這裏不能正確解析的地方,因爲我的代碼工作正常,可以將其他所有東西存儲在合適的地方......除了這個「消息」部分。 Apr 9 00:00:02 dh1 dhcpd:10.193.XX上的DHCPACK到00:21:xx:53:xx:e1(xxxxxx-PC)通過10.193.xx.xx Apr 9 00:00:02 dh1 dhcpd :增加了從xx.wifi-uhs.xx到10.193.xx.xx的新轉發地圖 Apr 9 00:00:02 dh1 dhcpd:從242.244.xx.xx.in-addr.arpa添加了反轉地圖。到xx.wifi-uhs.xx – TBell 2010-07-13 20:05:53

0

BTW:要找到流浪逗號,我做了以下模式的搜索:

\,\ S *(} |])

這樣可以節省時間堆,尤其是因爲不同的瀏覽器更比其他人錯誤的逗號。

相關問題