我在从 PHP 传回的对象中检索数据时遇到问题。我尝试了许多不同的方法来访问这些数据,但都没有奏效。
在 Firebug 中,我看到以下内容......(在 Firebug 中看起来更好) - 我试图让它看起来尽可能接近 Firebug
结果 对象 { data="{"formName":"form3","formData":"数据在这里"}", phpLiveDebug="<...s: 198.91.215.227"}
数据 "{"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;
希望这对某人有帮助!
我不知道它到底做了什么不工作,但是......它现在工作了!
我想知道当你编码一个数组然后添加另一个数组并重新编码时内部会发生什么! 双重编码。我的错。