2017-03-03 91 views
0

因此,我开始使用Handlebars.js模板来显示成功的HTML代码,从Jquery GET请求。然后我从我的控制器(从我的模型/数据库中获取它)获取一个数组。在把手中,我必须使用数组名称来循环。我使用dataype JSON传递这个数组,并在我的Controller中使用json_encoding($array}使用JQuery来获取数据类型JSON的数组名称JSON

问题是我的数组似乎没有得到数组名称,所以我没有数组名称来引用。

代码在型号:

public function getAllUserInfo() { 
    $this->selStmt->execute(); 
    return $this->selStmt->fetchAll(PDO::FETCH_ASSOC); 
} 

代码在控制器:

private function getUserInfo() { 
    $userInfo = $GLOBALS["userModel"]; 
    $userModel = $userInfo->getSearchResult();  
    $data = json_encode($userModel); 
    echo $data; 
} 

代码在视图(Jquery的):

$(function() { 
    $.ajax({ 
     type: 'GET', 
     url: '?page=getUserInfo', 
     dataType: 'json', 
     success: function(data) { 
      createHTML(data); 
      $.each(data, function(i, item){   
       displayUsers(item); 
     }); 
     } 
    }); 
}); 

displayUsers功能是把手的功能。

我的问题是,我得到的数组时加载网页看起来是这样的:

[{"userID":"19","name":"Testbruker2","username":"Test2","password":"test123","userLevel":"user","image":"tafjord.jpg","lastLogin":null,"email":"[email protected]"},{"userID":"20","name":"Testbruker3","username":"Test3","password":"test123","userLevel":"user","image":"tafjord.jpg","lastLogin":null,"email":"[email protected]"}] 

,我想是这样的:

{ 
    Pets: [ 
     { 
     "name": "Meowsy", 
     "species" : "cat", 
     "foods": { 
      "likes": ["tuna", "catnip"], 
      "dislikes": ["ham", "zucchini"] 
     } 
     }, 
     { 
     "name": "Barky", 
     "species" : "dog", 
     "foods": { 
      "likes": ["bones", "carrots"], 
      "dislikes": ["tuna"] 
     } 
     }, 
     { 
     "name": "Purrpaws", 
     "species" : "cat", 
     "foods": { 
      "likes": ["mice"], 
      "dislikes": ["cookies"] 
     } 
     } 
    ] 
} 

在我的车把容器我必须写:

{{#each ARRAYNAME}} 
//code here 
{{/each}} 

但我没有一个数组名称来指代..

任何人都知道如何做到这一点?

谢谢。

回答

2

这将这样的伎俩

$data = json_encode(array("DesiredArrayName" => $userModel)); 
+0

谢谢!完美的作品 – Uptotrix