嗨我想從我的服務器上的MySQL數據庫與Phonegap應用程序獲取數據。我打電話給服務器上的PHP文件,這是讓我回JSON。我試圖對服務器上的該PHP文件執行ajax調用,並且我想將json數據保存在角度的$ scope中,以便可以在我的HTML中使用它。我的腳本是這樣的: 使用Angularjs和php將PhoneGap App連接到服務器上的MySql數據庫?
function PostsCtrlAjax($scope, $http)
{
var output2 = $('#output2');
$.ajax({
url: 'http://myWebsiteMySQL.ch/landmarks.php',
dataType: 'jsonp',
jsonp: 'jsoncallback',
timeout: 5000,
success: function(data, status){
$scope.posts = data;
},
error: function(){
output2.text('There was an error loading the data.');
}
});
}
</script>
那麼我要訪問的$範圍數據在HTML文件中像這樣:
<div id="ng-app" ng-app ng-controller="PostsCtrlAjax">
<div ng-repeat="post in posts" class='postBody'>
<div>{{post.id}}</div>
<div>{{post.name}}</div>
</div>
</div>
,但我看不到任何數據。我究竟做錯了什麼? 我很感激任何幫助。自2天以來我試圖解決這個問題。在服務器上
我的PHP文件看起來像這樣:
<?php
header('Content-type: application/json');
$server = "localhost";
$username = "xx";
$password = "xx";
$database = "xx";
$con = mysql_connect($server, $username, $password) or die ("Could not connect: " . mysql_error());
mysql_select_db($database, $con);
$sql = "SELECT id, l_name AS name, l_lat AS latitude, l_long AS longitude, l_image AS bild FROM landmarks ORDER BY l_name";
$result = mysql_query($sql) or die ("Query error: " . mysql_error());
$records = array();
while($row = mysql_fetch_assoc($result)) {
$records[] = $row;
}
mysql_close($con);
echo $_GET['jsoncallback'] . '(' . json_encode($records) . ');';
?>
的數據,是發回的是:
([{"id":"14","name":"Fashion_Coupons","latitude":"9.000000000000","longitude":"9.000000000000","bild":null},{"id":"13","name":"Travel_Coupons","latitude":"3.000000000000","longitude":"4.000000000000","bild":"TopTrendsProgressbar.png"},{"id":"31","name":"Travel_Coupons","latitude":"222.000000000000","longitude":"23212.000000000000","bild":null}]);
我試過,但它似乎它沒有做成功。當我在$ scope.posts = data之前提醒消息時;它不會提醒。所以我認爲這是失敗的。我需要用CORS做些什麼嗎? – user3216026
你的PHP實際上是否返回一個JSONP有效載荷?加入 – BenCr
我不確定。我是這個領域的新手,我剛剛使用服務器上的php文件更新了我的代碼。我現在使用$ http.get嘗試它,它正在進入成功功能,但$ scope.posts = data仍然無法使用{{post.id}}調用 – user3216026