2017-10-15 80 views
-1

我使用$ .post從一個單獨的php文件返回一個數組,並試圖通過鍵訪問javascript中數組的值,但是我在做所以。將php數組傳遞給javascript,然後通過鍵訪問數值

這裏的郵編:

$(document).ready(function(){ 

var limRefresh = setInterval(refreshLIM, 10000); 
var dbAction = "feedRefresh"; 
var newestRow = <?php echo $newestRow ?>; 

$.post("jsDb.php",{ action: dbAction,lastRow: newestRow },function(status){ 
    console.log(status); 
    console.log(newArr['status']); 
    console.log(newArr.status); 
    console.log(newArr[0]); 
}); 

}); 

這裏有一個如何響應在外部PHP文件被格式化的摘錄:

echo json_encode(array("status" => "success","actId" => $newActId)); 

而這裏的各自的控制檯日誌(只是嘗試不同的選項):

  • {「status」:「success」,「actId」:「585924418」}
  • 未定義
  • 不確定
  • {

我要去哪裏錯了任何想法?

+1

哪裏是否定義了「newArr」? –

+1

你在哪裏解碼你的json? –

回答

2

您從$ .post獲得的狀態響應是一個字符串。你需要解析它才能按照你的意圖使用它。而且,newArr是未定義的,因爲您沒有在任何地方定義它。這可能是因爲你重用別人的代碼,錯過了這一部分:

newArr = JSON.parse(status) 
1

的響應來爲字符串,所以你需要分析它,然後才能訪問它作爲JSON:

$.post("jsDb.php",{ action: dbAction,lastRow: newestRow },function(status){ 
    var data = JSON.parse(status); 
    console.log(data['status']) 
    console.log(data['actId']) 
}