0

Ajax の Json メソッドを使用して、ファンシーボックス ギャラリーを作成しようとしています。スクリプトは 3 つの部分に分かれています

Ajax 呼び出し:

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
}

ページ getimages.php :

<?  

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;

?>

Json レスポンス:

[{"href":"1df4fddf370b2e89949bbf5d6e11e037_1381707753.jpg"},{"href":"42a4701b45eb5b17cee7a8fe1beb4c48_1381957761.jpg"}]

簡単に言うと、各写真には「onclick」getimage(id) があり、「id」はユーザー ID です。したがって、getimage.php はすべての写真のユーザーを検索し、json メソッドを使用してこれらをギャラリーとして表示する必要があります。

問題は、 data が未定義のオブジェクトを返すことです(素敵な "alert(data)" obj,[obj] でテストしました)。では、何が問題なのですか?...そして、英語が下手で申し訳ありません。

4

2 に答える 2

1

あなたのデータはすでに配列であり、次のように使用します。

....
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
        });
     }
}
于 2013-10-17T10:44:12.743 に答える
0

console.log(var mixed); データが JSON-Object/String の場合に使用をデバッグするvar myObj = eval('(' + data + ')');には、JS-Object を取得するために使用します。

于 2013-10-17T10:49:10.347 に答える