我已阅读过这些文章的多篇文章,但没有任何内容对我有用,所以如果有人可以提供帮助,我们将非常感激。我试图将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>
答案 0 :(得分:1)
这不是您面临的HTML问题,而是数据循环问题。打开控制台(F12)并确保XHR请求实际返回您期望的内容。然后在行上方写调试器; : var newhtml =''; 并检查数据变量的内容。
然后确保循环功能按预期工作:
$.each(data, function(i, item) {
debugger;
});
您将意识到“item”变量不会保留具有属性的预期对象:“Full_Name”。
基本上当遇到问题时,你可以解决问题的方法是逐步调试你的代码并确保每个函数都在做假设的事情并且每个变量都有预期的内容。
你在这种情况下结束的原因是因为你使用的模糊名称如:“data”。您的内容实际上包含“unparsedCompanyCollection”。我建议也习惯于精确的变量名称,它可以帮助你进行调试,并且通常可以长期使用干净的代码。
答案 1 :(得分:0)
只是一个猜测,但你可能会返回一串Json数据而不是实际的json数据。通常,您可以在输出之前添加内容标题以进行修复。
在你的PHP文件中添加JSON
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 )
答案 2 :(得分:0)
您应该将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"
}
}}