Я новичок в AJAX, и я просто пытаюсь отобразить результаты базы данных с PHP на HTML через AJAX. Я загружаю «undefined» в журнал консоли при загрузке страницы. HTML, PHP и JS-файлы отделены друг от друга.PHP json_encode to AJAX, undefined
Вот мой JS код:
$(document).ready(function(){
$.ajax({
type: "GET",
url: "xaja.php",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function(data){
console.log(""+data.name);
},
error: function(e){
alert("Error:\n"+e);
}
});
});
Вот мой PHP код:
<?php
$json = array(
'username' => '',
'name' => '',
'loc' => ''
);
$sql = "Select * from tbluser";
$query = mysql_query($sql, $conn);
$result = mysql_fetch_assoc($query);
do{
$json['username'] = $result['username'];
$json['name'] = $result['name'];
$json['loc'] = $result['location'];
echo json_encode($json);
$result = mysql_fetch_assoc($query);
}
while($result);
?>
Я пропускаю что-то здесь? Заранее спасибо!
Используйте 'console.log' вместо' alert' для отладки Javascript - 'alert' только обрабатывает строки или строки, подобные значения,' консоли .log' может выводить почти что угодно. Вы сможете увидеть, что значение 'e' (объекта) и отладки станет намного проще. – Scott
Спасибо, Скотт, вот ошибка: Object {readyState: 4, getResponseHeader: .ajax/v.getResponseHeader(), getAllResponseHeaders: .ajax/v.getAllResponseHeaders(), setRequestHeader: .ajax/v.setRequestHeader(), overrideMimeType: .ajax/v.overrideMimeType(), statusCode: .ajax/v.statusCode(), abort: .ajax/v.abort(), state: .Deferred/d.state(), всегда: .Deferred/d.always(), затем: .Deferred/d.then(), еще 11 ...} – Ken
Это говорит мне о неопределенности. – Ken