3

フォームのこのコードを取得しました:

jQuery

 $('#form').ajaxForm({
    beforeSend: function () {
        bar.width(0);
    },
    uploadProgress: function (event, position, total, percentComplete) {

        var percentCompleted = percentComplete + '%';
        bar.width(percentCompleted)
        bar.text(percentCompleted)
        console.log(percentCompleted);
        ///The Console logs properly.
    },

    complete:
    //------------------------------------
    //THIS IS WHERE LIES PROBLEM IS
    //------------------------------------
    function (xhr) {
        //How do you convert the xhr to JSON?

        //I tried :
        var out = JSON.parse(xhr)
        // and :
        var out2 = $.parseJSON(xhr)

        console.log('Completed1: ' + out);
        console.log('Completed2: ' + out2);
    },
    error: function (xhr, desc, err) {
        console.log(xhr)
        console.debug(xhr);
        console.log("Desc: " + desc + "\nErr:" + err);
    }

});

PHPは次のよ​​うになります。

ここに画像の説明を入力

ここに画像の説明を入力

$OutCollection連想ですArray()


Firebug コンソールは次のように述べています。 ここに画像の説明を入力

何が本当に間違っているのか理解できません。

どんな助けでも大歓迎です。


firebug での PHP 出力/応答

ここに画像の説明を入力


Console.log(xhr) の出力

ここに画像の説明を入力

4

4 に答える 4

3

xhf はXMLHttpRequestオブジェクトであるように見えるため、responseTextプロパティにはjsonが含まれます。

function (xhr) {
    //How do you convert the xhr to JSON?

    //I tried :
    var out = JSON.parse(xhr.responseText)
    // and :
    var out2 = $.parseJSON(xhr.responseText)

    console.log('Completed1: ', out);
    console.log('Completed2: ', out2);
},
于 2013-07-22T01:50:01.813 に答える
2

謎を解いた:

を試すことを提案したコメントで@Musaからのヒントを使用してconsole.log(xhr)

私はこれを思いつきました。

var out=$.parseJSON(xhr.responseText);

     $.each(out,function(i,v){
    //then:
    console.log(out[i]) //to access each piece of the information.

    });

でも、

どういうわけか、 の両方のパラメータがペアの$.each()を返しています。どういうわけか、 は と 、ループの値であるべきだと思いました。次のようなことができるように: . 値の配列に格納されている値にアクセスするためのインデックスとして使用します。keykey=valueiindexv$.eachv[i]iv

とはいえ、ハッキング的に機能します。

于 2013-07-22T02:54:29.517 に答える