我正在尝试从数据库中获取数据并希望以我的形式显示该数据,但它给出了以下错误VM1704:1未捕获的SyntaxError:JSON输入的意外结束。我在我的php文件中选择了数据库中的数据,并希望在我的表单中显示该数据 在JSON.parse() 在XMLHttpRequest.xmlhttp.onreadystatechange(main.php:61)
<form >
<div class="form-group">
<input type="text" name="email" id="email" class="form-control">
</div>
<div class="form-group">
<input type="text" name="name" id="name" class="form-control">
</div>
<div class="form-group">
<input type="text" name="fathername" id="fathername" class="form-control">
</div>
</form>
</div>
</div>
<script type="text/javascript">
function myfunction(id)
{
//alert(id);
console.log(id);
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var myObj = JSON.parse(this.responseText);
document.getElementById("email").innerHTML = myObj.email;
document.getElementById("name").innerHTML = myObj.name;
document.getElementById("fathername").innerHTML = myObj.fathername;
}
};
xmlhttp.open("GET", "ajax.php?q=" + id, true);
xmlhttp.send();
}
</script>
ajax.php文件
<?php
$q = $_REQUEST["q"];
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "login";
$records=array();
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
$sql2 = "SELECT * FROM detail WHERE email= '$q' " ;
$result = $conn->query($sql2);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$records=array(
'email'=>$row['email'],
'name'=>$row['name'],
'fathername'=>$row['fathername']
);
}
}
else
{
}
return json_encode($records);
?>
答案 0 :(得分:2)
您的代码存在一些问题。
您正在使用return
而不是echo
:
return json_encode($records);
返回并不实际输出任何内容。请改用echo
:
echo json_encode($records);
您尝试以错误的方式填充输入字段。您使用的.innerHTML
对输入字段无效(它们不具有任何内部HTML)。它是您要设置的value
属性:
document.getElementById("email").value = myObj.email
其他输入字段也是如此。