【发布时间】:2014-08-29 18:52:28
【问题描述】:
我有一个用 php 编写的 Web 服务,但我无法使用 jquery getJSON() 获取数据。
这是我的网络服务,工作正常。
<?php
include 'config.php';
$sql = "select s.id, s.title, s.content, s.date, s.confirm " .
"from sap s";
try {
$dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass,array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $dbh->query($sql);
$sapList = $stmt->fetchAll(PDO::FETCH_OBJ);
$dbh = null;
header('Content-Type: application/json; charset=UTF8');
$data = array('items'=>$sapList);
echo json_encode($data,JSON_UNESCAPED_UNICODE);
//echo '{"items":'. json_encode($sapList,JSON_UNESCAPED_UNICODE) .'}';
} catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
?>
我正在尝试开发一个 jQuery 移动应用程序。源代码:event.js 我在 event.js 中用于循环。因为我想从中提取数据多个独立的服务。
var db=openDatabase('servicesDB','1.0','servcesdatabase', 2*1024*1024);
tablo();
var olaylar;
$('#eventListPage').bind('pageinit', function(event) {
console.log("geteventlist fonksiyon running");
getEventList();
});
function getEventList() {
db.transaction(function (tx) {
tx.executeSql('SELECT * FROM services',[],function (tx,sonuc) {
var toplam=sonuc.rows.length;
var kayit="";
var id="";
var ad="";
var url="";
$('#olaylar li').remove();
for (var i=0;i < toplam; i++) {
kayit=sonuc.rows.item(i);
id=kayit.id;
ad=kayit.ad;
url=kayit.url;
$.getJSON(url+'?callback=?', function(data) {
olaylar = data.items;
$.each(olaylar, function(index, olay) {
/*var confirm="";
switch(olay.confirm){
case 0:
confirm="accept";
break;
case 1:
confirm="wait";
break;
case 2:
confirm="reject";
break;
}*/
$('#olaylar').append(
'<li><a href="eventDetails.html?id=' + olay.id + '">' +
'<img src="pics/mr.jpg"/>' +
'<h4>' + olay.title + '</h4>' +
'<p>' + olay.confirm + '</p>' +
'</a></li>');
});
$('#olaylar').listview('refresh');
alert("getjsondan cikti");
});
}
}, hata);
});
}
function tablo(){
db.transaction(function (tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS services('
+'id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,'
+'ad VARCHAR(25) NOT NULL, url VARCHAR(100) NOT NULL)');
});
}
function hata(transaction, err){
alert("Hata oldu : "+err.message);
return false;
}
index.html
<!DOCTYPE HTML>
<html>
<head>
<title>Personel Listesi</title>
<meta name="viewport" content="width=device-width,initial-scale=1" />
<link rel="stylesheet" href="css/styles.css" />
<link rel="stylesheet" href="css/jquery.mobile-1.4.3.css" />
<link rel="stylesheet" href="css/jquery.mobile-1.4.3.min.css" />
</head>
<body>
<div id="eventListPage" data-role="page">
<div data-role="header" data-position="fixed">
<h1>Event List</h1>
</div>
<div data-role="content">
<ul id="olaylar" data-role="listview" data-filter="true"></ul>
</div>
</div>
<script src="js/jquery-2.1.1.min.js"></script>
<script src="js/jquery.mobile-1.4.3.min.js"></script>
<script src="js/events.js"></script>
<script src="js/eventDetails.js"></script>
</body>
</html>
我试过$.getJSON(...){ alert("in getjson"); 但这不起作用。这个alert.getjson 函数不起作用。但之前效果很好,现在getjson 函数返回空白,好像没有检索到任何数据。我需要你的帮助,谢谢!
【问题讨论】:
标签: javascript jquery json jquery-mobile getjson