[英]PHP results not displaying in HTML
我已经阅读了多篇文章,但对我没有任何帮助,因此如果有人可以提供帮助,我将不胜感激。 我正在尝试将Full_Name字段显示为网页上的HTML元素。
PHP文件如下:
{"Test_Info": {
"Company_Info": {
"Company_ID": "2",
"Company": "Test Company",
"Full_Name": "Test User"
}}
我在HTML代码的主体中使用以下代码:
<body id="startscreenBG">
<div class="hello"> </div>
</body>
<script>
$.ajax({
type:'GET',
url:'jsondata.php',
data:'json',
success: function(data){
var newhtml = '';
$.each(data, function(i, item) {
newhtml +='<div>'+ item.Full_Name +'</div>';
});
$('.hello').html(newhtml);
}})
</script>
</html>
这不是您面临的HTML问题,而是数据循环问题。 打开控制台(F12),并确保XHR请求实际上返回了您期望的结果。 然后写: debugger; 在行上方: var newhtml =''; 并检查数据变量的内容。
然后确保您的循环功能按预期工作:
$.each(data, function(i, item) {
debugger;
});
您将认识到“ item”变量不包含具有“ Full_Name”属性的预期对象。
基本上,当您遇到问题时,解决问题的方法是逐步调试代码,并确保每个函数都按预期执行,并且每个变量都具有预期的内容。
之所以最终出现这种情况,是因为您使用的是模糊的名称,例如:“数据”。 您的内容实际上包含“ unparsedCompanyCollection”。 我建议您也习惯于精确的变量名,这将长期帮助您进行调试,并且通常使用干净的代码。
只是一个猜测,但是您可能返回的是Json数据字符串,而不是实际的json数据。 通常,您只需在输出内容标头中添加内容标头即可对其进行修复。
在您的使JSON添加的PHP文件中
header('Content-Type: application/json');
在输出数据之前。
在success callback
您可以进行一些调试以查看
...
success: function(data){
console.log( data ); // Or even just alert(data); if it's a string then you know.
...
}
解决它的另一种方法是使用JSON.parse( data )
您应该将data:'json'
更改为dataType:'json'
。 另外,您正在尝试输出item.Full_Name
。 这应该是item.Company_Info.Full_Name
。 您的ajax调用应为:
$.ajax({
type:'GET',
url:'jsondata.php',
dataType:'json',
success: function(data){
var newhtml = '';
$.each(data, function(i, item) {
newhtml +='<div>'+ item.Company_Info.Full_Name +'</div>';
});
$('.hello').html(newhtml);
}
});
而且,您应该更正PHP以容纳有效的JSON对象(请注意,问题中发布的代码中缺少结尾}
)
{"Test_Info": {
"Company_Info": {
"Company_ID": "2",
"Company": "Test Company",
"Full_Name": "Test User"
}
}}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.