我正在使用使用javascript等而不是其母语的icenium为移动设备编写一个应用程序(不是网络应用程序)。
该应用程序显示数据库中的行,显示事件。然后,用户单击一个显示有关该事件的更多信息的事件,但是我无法从 js 函数调用 ajax,如下所示:
function showSingle(itemId){
//document.write(itemId);
$('#output').fadeOut();
$('#single').fadeIn("fast");
$.ajax({
url: 'http://dev.123456789.co.uk/getSingle.php',
dataType: 'jsonp',
data: { dbId: itemId },
jsonp: 'jsoncallback',
timeout: 5000,
success: function(data, status){
var linkedPageSingle = '<h2>'+item.eventName+'</h2>'
+ '<p>Description: '+item.description+'</p><p>Type: '
+ item.type+'</p><p id="pageid">'+item.id+'</p>';
$('#single').append(linkedPageSingle);
// pageId = $('#pageid').html();
$('#single').text('debugdebug.');
},
error: function(){
$('#single').text('There was an error loading the data.');
}
});
}
这不返回任何数据,甚至不返回 $('#single').text('debugdebug.'); 所以ajax调用一定有问题?还
error: function(){
$('#single').text('There was an error loading the data.');
}
不输出。你能发现其中的错误吗?该函数的调用在这里:
var linkedPage = '<h2><a href="#" onClick="showSingle('+item.id+')">'+item.eventName+'</a></h2>'
+ '<p>Description: '+item.description+'</p><p>Type: '
+ item.type+'</p><p id="pageid">'+item.id+'</p>';
它位于页面的 document.ready 部分中,在 ajax 方法中(有效)。
getSingle.php:
<?php
/*
* Script to connect to database and pull out information for app!
*/
include 'connect.php';
$dbId = $_POST['dbId'];
$query = mysql_query("SELECT * FROM calTest where `id`='$dbId'");
$records = array();
while($row = mysql_fetch_assoc($query)) {
$records[] = $row;
}
echo $_GET['jsoncallback'] . '(' . json_encode($records) . ');';
?>
看不到哪里出错了,谢谢!