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 エンコードすると、内部で何が起こるのだろうか! ダブルエンコーディング。私の悪い。