2012-03-26 93 views
1

我想向像這樣訪問的對象中的數組添加元素以檢索數據。在關聯數組中間拼接一個元素

var event_id = events_data.event_id[i]["0"]; 
var event_title = events_data.event_title[i]["0"]; 
var selected_source = events_data.selected_source[i]["0"]; 
var channel_id = events_data.channel_id[i]["0"]; 

events_data是一個包含元素event_id,event_title,...的對象,該對象是在這樣的PHP函數中創建的。

$return = array(); 
$return['event_id'] = $event_id; 
$return['event_title'] = $event_title; 
$return['selected_source'] = $selected_source; 
$return['channel_id'] = $channel_id; 
$return['channel_name'] = $channel_name; 
$return['event_site'] = $event_site; 
$return['event_url'] = $event_url; 
$return['start_date'] = $start_date; 
$return['start_time'] = $start_time; 
$return['end_date'] = $end_date; 
$return['end_time'] = $end_time; 
$return['event_notes'] = $event_notes; 

echo json_encode($return); 

編輯 - 添加信息

JSON對象看起來是這樣的。

{「event_id」:[{「0」:「e20120319215556」},{「0」:「e20120310221512」},{「0」:「e20120319151903」},{「0」:「e20120309123705」}, { 「0」: 「e20120307122044」},{ 「0」: 「e20120306182514」},{ 「0」: 「e20120309211714」},{ 「0」: 「e20120314130727」},{ 「0」: 「e20120319150532」}, { 「0」: 「e20120319141928」},{ 「0」: 「e20120319141201」},{ 「0」: 「e20120301193226」},{ 「0」: 「e20120301184354」}]}

END INFO ADDED

在javascript方面,我得到了像這樣的events_data數組。

$.ajax({ 
    url: "get_events_data.php", 
    type: "POST", 
    dataType : 'json', 
    data: { }, 
    cache: false, 
    async: false, 
    success: function (rdata) { 
     events_data = rdata; 
        } 
     }); 

將元素添加到events_data上的JavaScript方面,我檢查裏添加新的元素,然後用拼接它添加索引。但是由於數據是用關聯數組的[「0」]文本鍵檢索的,我不知道如何指定拼接參數。

for (var n=0; n<events_data.event_id.length; n++) { 
    if (current_event_id == events_data.event_id[n]["0"]) { 
     //splice_index = n;    
     events_data.event_id.splice(n,0,event_id); 
     events_data.event_title.splice(n,0,event_title); 
     events_data.selected_source.splice(n,0,selected_source); 
     events_data.channel_id.splice(n,0,channel_id); 
     events_data.channel_name.splice(n,0,channel_text); 
     events_data.event_site.splice(n,0,event_site); 
     events_data.event_url.splice(n,0,event_url); 
     events_data.start_date.splice(n,0,start_date_string); 
     events_data.start_time.splice(n,0,start_time_string); 
     events_data.end_date.splice(n,0,end_date_string); 
     events_data.end_time.splice(n,0,end_time_string); 
     events_data.event_notes.splice(n,0,event_notes); 
     break; 
    } 
} 

指定拼接索引「n」似乎沒有這樣做。我應該改變什麼?

謝謝。

+0

它看起來像你的陣列,對象混合起來,反之亦然。簡而言之,如果你想要一個保證順序的數字索引數據結構,可以使用一個數組。如果您想要一個以字符串作爲關鍵字(而不是數字)的關聯數組,請使用對象。如果你最終使用數組,你可以使用push,pop等來添加和刪除項目。 – jbabey 2012-03-26 16:31:02

+0

該數組是從php函數返回的json編碼對象。它工作正常。我只想知道如何在中間添加元素。如果我這樣讀取event_title數組,event_data.event_title = events_data.event_title [i] [「0」];',來自events_data對象,我該如何在它的中間添加一個元素? – user823527 2012-03-26 16:35:14

+0

顯示你的JSON比顯示你的PHP更有幫助。 – nrabinowitz 2012-03-26 16:37:53

回答

相關問題