[英]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.