2013-07-26 134 views
1

即時通訊使用datatables來顯示數據,我想從我的服務器以良好的方式獲取語言設置。問題在於以一種可能的方式格式化數據,我寧願使用盡可能少的修改來使用json格式。無法正確使用json響應

我想用這樣的:

(至於我的數據表中創建一個參數,這是什麼數組對象JSON字符串????)

var oLanguage =  
{ 
    "oLanguage": { 
     "sLengthMenu": "_MENU_ per page" 
    } 
}; 

我嘗試獲得從這個數據使用這種方法的服務器:

$.getJSON('/olan', function(data){ 
    oLanguage=data; 
}); 

服務器代碼:(PHP,SLIM

$app->get('/olan', function() use ($app, $lan){ 
    $oLanguage = array('oLanguage' => array('sLengthMenu' => '_MENU_ per page')); 
    $response = $app->response(); 
    $response['Content-Type'] = 'application/json'; 
    $response->body(json_encode($oLanguage)); 
}); 

我能夠遍歷$ .getJSON方法中的數據,並且所有信息都在那裏,必須是格式/對象處理的東西。我還沒有很好地理解我需要的對象的類型,我可以聲明它,但我不知道它是什麼:)我希望它有某種類型的json對象,所以我可以輕鬆地將它作爲我試着去做。我可以使用$ .each迭代來聲明它,但它會很難看。

這是這裏計算器我的第一個問題,謝謝你幫我出

-------------------------答案(不能發佈它的第8個小時)---------------

原來,

感謝Shinosha

,有一個構建數據表的功能以獲得l來自服務器的語言設置。通過建立這樣的表格:

$('#tableid').dataTable({ 
    "oLanguage": { 
       "sUrl": "/olan" 
     } 
}); 

和編輯我的服務器代碼:(改變$ oLanguage變量)

$app->get('/olan', function() use ($app, $lan){ 
    $oLanguage = array('sLengthMenu' => '_MENU_ per page'); 
    $response = $app->response(); 
    $response['Content-Type'] = 'application/json'; 
    $response->body(json_encode($oLanguage)); 
}); 

它的工作原理!

在Javascript中,[]表示數組,{}表示對象。您可以根據需要嵌套對象和數組。使用json驗證器,如jsonlint.com 驗證您的服務器響應。gvmani

oLanguage是與屬性oLanguage其是與屬性sLengthMenu的物體的目標。 sLengthMenu具有值 「MENU每頁」

var oLanguage =  
{ 
    "oLanguage": { 
     "sLengthMenu": "_MENU_ per page" 
    } 
}; 
+0

請參閱http://datatables.net/plug-ins/i18n#how_to和http:// datatables。淨/使用/ I18N – LMeyer

+0

由於Shinosha, 設置 「oLanguage」:{ 「SURL」: 「/ olan」 } 和編輯服務器變量$ oLanguage =陣列( 'sLengthMenu'=> '每頁_MENU_')作品!:) –

回答

1

在Javascript中,[]表示陣列和{}表示對象。您可以根據需要嵌套對象和數組。使用json驗證器(如jsonlint.com)來驗證您的服務器響應。

+0

感謝您的幫助,我現在對Javascript有了更好的理解:) –