Php Ajax';s JSON返回未定义的对象
我试图用Ajax的Json方法创建一个fancybox库。 剧本分为三个部分 Ajax调用:Php Ajax';s JSON返回未定义的对象,php,jquery,ajax,json,fancybox,Php,Jquery,Ajax,Json,Fancybox,我试图用Ajax的Json方法创建一个fancybox库。 剧本分为三个部分 Ajax调用: function getimage(id) { $.ajax({ type: "GET", dataType: "json", url: 'getimages.php', data:'user='+id, success: function(data){ $.fancybox([d
function getimage(id) {
$.ajax({
type: "GET",
dataType: "json",
url: 'getimages.php',
data:'user='+id,
success: function(data){
$.fancybox([data], {
'padding': 0,
'transitionIn': 'none',
'transitionOut': 'none',
'type' : 'image',
'changeFade' : 0,
'topRatio' : 0.2
});
}
});
return false
}
<?
include 'config.php'; connect(); session_start();
$user_id = trim(strip_tags($_GET['user']));
$query = "SELECT url as href FROM post WHERE user_id = '$user_id' AND type = 'photo'";
$arr = array();
$rs = mysql_query($query);
while($obj = mysql_fetch_object($rs)) {
$arr[] = $obj;
}
$json_response = json_encode($arr);
echo $json_response;
[{"href":"1df4fddf370b2e89949bbf5d6e11e037_1381707753.jpg"},{"href":"42a4701b45eb5b17cee7a8fe1beb4c48_1381957761.jpg"}]
页面getimages.php:
function getimage(id) {
$.ajax({
type: "GET",
dataType: "json",
url: 'getimages.php',
data:'user='+id,
success: function(data){
$.fancybox([data], {
'padding': 0,
'transitionIn': 'none',
'transitionOut': 'none',
'type' : 'image',
'changeFade' : 0,
'topRatio' : 0.2
});
}
});
return false
}
<?
include 'config.php'; connect(); session_start();
$user_id = trim(strip_tags($_GET['user']));
$query = "SELECT url as href FROM post WHERE user_id = '$user_id' AND type = 'photo'";
$arr = array();
$rs = mysql_query($query);
while($obj = mysql_fetch_object($rs)) {
$arr[] = $obj;
}
$json_response = json_encode($arr);
echo $json_response;
[{"href":"1df4fddf370b2e89949bbf5d6e11e037_1381707753.jpg"},{"href":"42a4701b45eb5b17cee7a8fe1beb4c48_1381957761.jpg"}]
长话短说,每张照片都有一个“onclick”getimage(id),其中“id”是用户id。
因此getimage.php应该搜索所有照片的用户,并使用json方法将这些照片视为gallery
问题是数据返回未定义的对象(使用可爱的“alert(data)”obj[obj]对其进行测试)。
现在,有什么问题吗?。。。我很抱歉我的英语不好。你的数据已经是一个数组
....
success: function(data){
console.log(data);// check in console
if(data.length)
{
$.fancybox(data, { // use data in place of [data]
'padding': 0,
'transitionIn': 'none',
'transitionOut': 'none',
'type' : 'image',
'changeFade' : 0,
'topRatio' : 0.2
});
}
}
要调试,请使用
console.log(var mixed)代码>
如果数据是JSON对象/字符串,请使用var myObj=eval(“(“+data+”)”)代码>获取JS对象。对象可以在控制台中显示,而不是在alert()中显示