phonegap跨域(采用jsonp)获取服务端公告栏消息。
需求:当点击公告获取数据
关键代码:客户端静态编码:
引入js脚本<script type="text/javascript" src="js/getJson.js"></script>
<span id="notice">公告</span>
<ul id="resText"></ul>
getJson.js 代码
var res = []; //定义一个数组容器,存放公告
var idx = 0;
var step = 5; //一次五条
function appendContent(){
for(var i = 0; i < step; i++){
if(idx < res.length){
$('<li>' + res[idx].title + '</li>').appendTo($('#resText'));
}
idx++;
}
}
$('#notice').click(function() {
//当数组容器已经有公告栏,再次点击时获取更多公告
if(res.length){
appendContent();
}else{
$.ajax({
type: 'get',
url: 'http://localhost.me/phonegap_server/notice.php',
dataType: "jsonp",
success: function(data) {
if(data && data.items) {
$.each(data.items, function(i, item) {
res.push(item);
});
appendContent();
}
}
});
}
});
服务器端代码:
require_once 'Conf/config.php';
$conn=@mysql_connect($host,$user,$pass) or die('Unable to connect database server!');
mysql_select_db($dbbase,$conn);
$sql="select `title`,`content` from notice";
$result=mysql_query($sql);
$array=array();
while($row=mysql_fetch_array($result,MYSQL_ASSOC)) {
$array[]=$row;
}
$callback = isset($_GET['callback']) ? $_GET['callback'] : '';
$ques = array();
$ques['items'] = $array;
$ques = json_encode($ques);
if ($callback) {
$ques = $callback . ' && ' . $callback . '(' . $ques . ');';
}
echo $ques;
mysql_close($conn);