2016-05-16 119 views
0

我嘗試NG-重複從返回PHP JSON result.But我有一些錯誤代碼=)Angularjs和PHP JSON/NG-INIT/NG重複

angular.min.js:117錯誤:[$ parse:ueoe] ** 對不起,我的英語。

JSON結果:

[{"id":"1","fullname":"Ad Soyad","email":"[email protected]","tel":"12332123","message":"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.","time":"12/05/2016","picture":"assets/admin/layout3/img/avatar1.jpg","isread":"1"}, 
{"id":"2","fullname":"Mahmut Tuncer","email":"[email protected]","tel":"1233211","message":"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.","time":"12/05/2016","picture":"assets/admin/layout3/img/avatar1.jpg","isread":"1"}] 

a.php只會

$datacontactform = $sorgu = $dbquery->multisorgu('contactform'); 
    <ul ng-init="contactlist = <?php echo $datacontactform; ?>"> 
    <li ng-repeat="data in contactlist"> {{data.fullname}}</li> 
    </ul> 

b.php

public function multisorgu($tablo,$where = null, $orderby = null, $limit = null){ 
    // MYSQL JSON RESULT  
    global $Baglan; 
    $sorgu = mysqli_query($Baglan, "SELECT * FROM $tablo $where $orderby $limit"); 
    $result = array(); 
    if(mysqli_num_rows($sorgu) > 0){ 
     while($bak = mysqli_fetch_assoc($sorgu)){ 
      $result[] = $bak; 
     } 
    } 
    //UTF-8 JSON_UNESCAPED_UNICODE 
    $json_response = json_encode($result,JSON_UNESCAPED_UNICODE); 
    return $json_response; 
} 
+0

你可以在'ng-init'變量中看到JSON數據? –

+0

如果您嘗試打印contactList如下:'

 {{contactList | json }}
' – Daniele

回答

0

1.爲什麼得到錯誤:

<ul ng-init="contactlist = <?php echo $datacontactform; ?>"> 

此行觸發錯誤,因爲它喜歡ng-init=" contactlist = somestring ",但ng-init除了喜歡ng-init=" contactlist = someobject"之外什麼。

2.解決方案:

如果使用的角度來說,阿賈克斯是一個很好的chooice。

如果沒有,試試這個:

$datacontactform = $sorgu = $dbquery->multisorgu('contactform'); 
?> 
<script type="text/javascript"> 
    var datacontactform = JSON.parse('<?php echo $datacontactform; ?>'); 
</script> 
    <ul ng-init="contactlist = datacontactform "> 
    <li ng-repeat="data in contactlist"> {{data.fullname}}</li> 
    </ul> 

任何問題,讓我知道PLZ。希望它有效。

+0

謝謝你的幫助。但ng-repeat不起作用。因爲ng-init沒有獲得價值 –

0

我認爲你得到JSON字符串而不是PHP變量中的對象。您可以使用JSON.parse方法將字符串解析爲對象&如果您從PHP獲得有效的響應,它應該可以工作。在下面的例子中,我只是在控制器內硬編碼JSON對象以供參考。

<!DOCTYPE html> 
<html ng-app="mainApp" lang="en"> 
<head> 
    <title>JSON PHP</title> 
<script src="angular.min.js"></script> 
</head> 
<script> 

    var app = angular.module('mainApp', []); 
    app.controller('MyCtrlr', function ($scope, $http) { 
        //Store your JSON Response 
           $scope.jsonResp = [{"id":"1","fullname":"Ad Soyad","email":"[email protected]","tel":"12332123","message":"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.","time":"12/05/2016","picture":"assets/admin/layout3/img/avatar1.jpg","isread":"1"}, 
{"id":"2","fullname":"Mahmut Tuncer","email":"[email protected]","tel":"1233211","message":"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.","time":"12/05/2016","picture":"assets/admin/layout3/img/avatar1.jpg","isread":"1"}]; 

         //}); 

}); 
</script> 

<body> 
    <div ng-controller="MyCtrlr"> 
     <ul ng-init="contactlist = jsonResp"> 
      <li ng-repeat="data in contactlist"> {{data.fullname}}</li> 
     </ul> 
    </div> 
</body> 

</html> 
0

謝謝你的幫助傢伙。但我不能工作

我嘗試這種方式,但現在我不能工作,這與JSON NG-重複..

<script type="text/javascript"> 
app.factory('jsonparse',function(){ 
    datacontactform = JSON.parse('<?php echo $datacontactform ?>'); 
    return datacontactform; 
}) 

myController的:

$scope.cd = datacontactform; 
    console.log($scope.cd); 

控制檯結果:

 
Object {1: Object, 2: Object} 
1:Object 
email:"[email protected]" 
fullname:"tester tester" 
id:"1" 
isread:"1" 
message: 
"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat." 
picture:"assets/admin/layout3/img/avatar1.jpg" 
tel:"123123123" 
time:"12/05/2016" 
__proto__: 
2:Object 
email:"[email protected]" 
fullname:"tester tester" 
id:"1" 
isread:"1" 
message: 
"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat." 
picture:"assets/admin/layout3/img/avatar1.jpg" 
tel:"123123123" 
time:"12/05/2016" 
__proto__: