2016-03-25 20 views
2

私はAngularJSで簡単な検索エンジンを作ろうとしています。クライアントとサーバーの間の通信に問題があります。私はw3schoolsガイドhttp://www.w3schools.com/angular/angular_sql.aspに従おうとしています。ここでAngularJSでの簡単なデータベース検索エンジン

はhome.php体です:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="utf-8" /> 
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js">  
</script> 
</head> 

<body> 
<div ng-app="myApp" ng-controller="customersCtrl"> 
<table> 
    <tr ng-repeat="x in names"> 
     <td>{{ x.Name }}</td> 
    </tr> 
</table> 
</div> 

<script> 
var app = angular.module('myApp', []); 
app.controller('customersCtrl', function($scope, $http) { 
    $http.get("server.php") 
    .then(function (response) {$scope.names = JSON.parse(response.data.records);}); 

}); 

</script> 

、ここではserver.phpというのです。

<?php 
header("Access-Control-Allow-Origin: *"); 
header("Content-Type: application/json; charset=UTF-8"); 
error_reporting(2); 

$conn = new PDO('mysql:host=localhost;dbname=mygaloo;charset=utf8', 'root', ''); 
$result = $conn->query("SELECT * FROM associations"); 
$outp = ""; 

while($donnees = $query->fetch()) 
{ 
    if ($outp != "") {$outp .= ",";} 
    $outp .= '{"Name":"' . $donnees["nom"] . '"}'; 
} 

$outp ='{"records":['.$outp.']}'; 
$conn->close(); 


echo($outp); 
?> 

しかし、私はこのエラーをgettinのよ:angular.js:12520SyntaxError: JSONの予期しないトークンの位置0の、任意のアイデアですか?ここで

+0

'server.php'にエラーがないことを確かめてください。私には1つあります。 – Rayon

+0

{{x.Name}}で白いページが表示されています。 –

+0

'error_reporting(2);'をセットし、テスト.. – Rayon

答えて

0

[OK]を取得しました。アルンShindeの答えは正しかったが、問題はから来る:私はここにmysqliのを使用して、明らかに、仕事に行くされていないPDOを使用してい

while($rs = $result->fetch(MYSQLI_ASSOC)) { 

。 ここでは動作する完全なコードです。 home.php:

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8" /> 
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js">  
    </script> 
</head> 

<body> 
    <div ng-app="myApp" ng-controller="customersCtrl"> 
    <table> 
     <tr ng-repeat="x in names"> <td>{{ x }}</td> </tr> 
    </table> 
    </div> 

    <script> 
    var app = angular.module('myApp', []); 
    app.controller('customersCtrl', function($scope, $http) { 
      $http.get("server.php") 
      .then(function (response) { 
       $scope.names = response.data; 
      }).then(function(response){ 
       console.log(response) 
      }) 

    }); 
    </script> 
</body> 

server.phpという:あなたの忍耐の皆のための

<?php 
header("Access-Control-Allow-Origin: *"); 
header("Content-Type: application/json; charset=UTF-8"); 

$conn = new PDO('mysql:host=localhost;dbname=mygaloo;charset=utf8', 'root', ''); 
$result = $conn->query("SELECT * FROM associations"); 
$outp = []; 
while($rs = $result->fetch()) { 
    if ($outp != "") 
    array_push($outp,$rs["nom"]); 
} 
$outp =json_encode($outp); 
$conn = null; 
echo($outp); 
?> 

おかげでたくさん!

+0

だから、私はそこにすべてのPHPコードを渡した。あなたが解決策を見つけたら、答えを受け入れるようにしてください。このためのすべての努力の後。 :-) –

0

はあなたの角度のコードでは、

<script> 
     var app = angular.module('myApp', []); 
     app.controller('customersCtrl', function($scope, $http) { 
       $http.get("server.php") 
       .then(function (response) { 
        $scope.names = response.data; 
       }).then(function(response){ 
        console.log(response) 
       }) 

     }); 
    </script> 

であり、ここで、あなたのPHPコードです。それがあなたを助けることを願っています。

<?php 
    header("Access-Control-Allow-Origin: *"); 
    header("Content-Type: application/json; charset=UTF-8"); 

    $conn = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', ''); 
    $result = $conn->query("SELECT * FROM associations"); 
    $outp = []; 
    while($rs = $result->fetch(MYSQLI_ASSOC)) { 
    if ($outp != "") 
    array_push($outp,$rs["nom"]); 
    } 
$outp =json_encode($outp); 
$conn = null; 
echo($outp); 
?> 
+0

console.logは「未定義」を返します –

+0

これを無視して下さい。 ** $ scope.names = response.data; **で成功していますか?これ以外のエラーです。ここにHTMLを印刷します。 ** 位置にJSONで \t \t \t \t \t​​{{名前}} \t \t \t \t ** –

+0

'予期しないトークン<0 ' –

関連する問題