0

PHP から返されたオブジェクトからデータを取得する際に問題が発生しています。このデータにアクセスするためにさまざまな方法を試しましたが、うまくいきません。

Firebugでは、次のように表示されます...(Firebugの方が見栄えが良いです)-これをできるだけFirebugに近づけようとしました

results Object { data="{"formName":"form3","formData":"データはここに入る"}", phpLiveDebug="<...s: 198.91.215.227"}

data "{"formName":"form3","formData":"ここにデータが入ります"}"

phpLiveDebug "<...s: 198.91.215.227"

問題なく phpLiveDebug にアクセスできますが、データ部分はオブジェクトです。私は次のことを試しました...

        success: function(results) {
            //$("#formName").val(results.data.formName);
            //$("#formName").val(results.data[0].formName);
            //$("#formName").val(results.data[0]);
            //$("#formName").val(results.data[1]);
            //$("#formName").val(results.data[0]["formName"]);
            var tmp = results.data[formName]; 
            alert("!" + tmp + "!");
            $("#formName").val(tmp);
            $("#jqueryPHPDebug").val(results.phpLiveDebug);
        }

この行は上記の例で機能します...

$("#jqueryPHPDebug").val(results.phpLiveDebug);

しかし... results.data 部分内のデータを取得する方法がわかりません...上記のように、さまざまなことを試してみましたが、そこにはリストされていません。

私は本当にこの行がうまくいくことを望んでいました:)

var tmp = results.data[formName];

しかし、そうではありません。それで、何日も読んだり、いじったりした後、私の解決策はそれを書き直してphpLiveDebugに似たデータを返すことでしたが、それから私は考えました...それは私が見落としている単純なものでなければなりません...

お時間をいただきありがとうございます。できれば、上記の私の論理 (適切な方法を理解しようとする私の恐ろしい試み) が間違っている理由を説明してください。

更新-この行は機能するはずです...しかし機能しませんでした...ここに理由があります...

        success: function(results) {
            //$("#formName").val(results.data.formName);

なぜそれがうまくいかなかった...

私の機能では、私は持っていました...

    $jsonData["formName"] = $rowName; // the name of the form we are fetching
    $jsonData["formData"] = "data goes here";

    return (json_encode($jsonData));

関数の呼び出し方法...

$dataReturn["data"] = $ds1->Invoke(rawurldecode($_POST["data"]));
if (DEBUGMODE) $dataReturn["phpLiveDebug"] = EH::CloseDebug();
exit (json_encode($dataReturn));

私はデータを二重にエンコードしていました...そして何らかの理由で...

$("#formName").val(results.data.formName);

機能していませんでした。

1行を変更してコードを修正しました...

return (json_encode($jsonData));

return $jsonData;

これが誰かを助けることを願っています!

何がうまくいかなかったのか正確にはわかりませんが...今はうまくいきます!

配列をエンコードしてから、別の配列を追加してそれを RE エンコードすると、内部で何が起こるのだろうか! ダブルエンコーディング。私の悪い。

4

1 に答える 1

0

キーは文字列です。

var tmp = results.data['formName'];

また

var tmp = results.data.formName;
于 2012-10-07T03:35:04.650 に答える