0

これは、json_encode()ファイルから出力されるjson文字列です。

[{"ID":"650","DESCR":"FRONTAGE","MAINURL":"images\/98\/30-HEATH (1).JPG","THUMBURL":"images\/98\/30-HEATH (1).JPG","ALBUM":"98"},{"ID":"651","DESCR":"PICTURE","MAINURL":"images\/98\/30-HEATH (2).JPG","THUMBURL":"images\/98\/30-HEATH (2).JPG","ALBUM":"98"},{"ID":"652","DESCR":"PICTURE","MAINURL":"images\/98\/30-HEATH (3).JPG","THUMBURL":"images\/98\/30-HEATH (3).JPG","ALBUM":"98"}]

これは私が使用している呼び出しです。オブジェクトを提供しますが、アクセスしようとするたびに、chromejavascriptコンソールからタイプエラーが発生します。

function FindPictures(b) {

var picturesHome = {};
var album = "";
var baseURL = b;

this.pics = function(alb){
    album = "";


    $.ajax({
        async: false,
        url: "picsJSON.php",
        dataType: 'json',
        success: function (json) {
            picturesHome = json;
        },
        error: function (error) {}
    });

    return picturesHome;    
};

};
4

2 に答える 2

0

successはコールバックです。ajaxのダウンロードが完了するまで実行されませんが、関数はpicturesHomeすぐに戻ります。標準的な手順は、successコールバックで意味のある作業を行うことです。

function doSomethingWithThePictures(pics)
{
    alert('got some pics!');
    console.log(pics);
}

... snip ...

$.ajax({
        async: false,
        url: "picsJSON.php",
        dataType: 'json',
        success: function (json) {
            doSomethingWithThePictures(json);
        },
        error: function (error) { alert('ERROR: ' + error); }
    });
于 2012-11-06T02:47:33.547 に答える
0

私が推測するように、問題はajax呼び出しで指定されたデータ型にあります

これは、次のようにphpでJSONコンテンツタイプを指定することで解決できます。

header('Content-Type: application/json');

datatypeまたはajaxからオプションを削除し、次のようにJSONに解析します

$.ajax({
    async: false,
    url: "picsJSON.php",
    success: function (json) {
        picturesHome = JSON.parse(json); // you can use $.parseJSON() instead
    },
    error: function (error) {}
});

お役に立てれば

于 2012-11-06T06:30:58.973 に答える