相册 - jquery ajax json + php

时间:2012-02-11 19:13:11

标签: php jquery ajax

我正在使用ajax制作相册。

js code:

$(document).ready(function(){
  $('#next').click(function(){

    var next = $('#id').text();

    $.ajax({
        type: 'GET',
        url: 'URL', //This I changed for this post
        dataType: 'json',
        data: { "id" : next},
        success: function(data){
            alert(data.error);
            if(data.error == true)
            {
                alert(data.msg);
            }
            else
            {
            $('#pics').attr({
                src : data.src,
                witdth : data.width,
                height : data.height});
            $('#id').text(data.id);
            }
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
            alert(textStatus +' ' + errorThrown);
        }
    });
  });
});

php文件代码:

if(is_integer($_GET['id']))
{
$error = false;
$next = $_GET['id'] + 1;

switch($_GET['id'])
{
    case 1: $jsondata = '{"src" : "picture 01 valid path", ';
            $jsondata .= '"width" : xxx, ';
            $jsondata .= '"height" : xxx, ';
            $jsondata .= ' "id" : '.$next;
        break;
    case 2: $jsondata = '{"src" : "picture 02 valid path", ';
            $jsondata .= '"width" : xxx, ';
            $jsondata .= '"height" : xxx, ';
            $jsondata .= ' "id" : '.$next;
        break;
    ...+cases...
    default: $jsondata = '{"msg" : "An error occured. Please close the tab and enter again. Thanks."';
            $error = true;
}

$jsondata .= ', "error" : '.$error.'}';

echo json_encode($jsondata, true);
}

html代码:     

使用chrome javascript控制台时,错误是“错误”为空。我正在网上尝试很多组合和可能性而没有任何成功!你能帮我解决这个问题吗?

提前致谢!

P.S。:我仍然不确定这个解决方案是否会浏览相册:S回答这个问题之后还有其他问题..

2 个答案:

答案 0 :(得分:0)

您正在PHP代码中创建一个json字符串,因此您无需对其进行编码。

从您的php代码中移除此行echo json_encode($jsondata, true);,然后只需echo $jsondata并尝试。

答案 1 :(得分:0)

你不需要做json_encode,所以echo $ jsondata就足够了