我想使用php和jquery ajax从mysql数据库中获取数据。 ' process.php'是连接数据库并获取mysql数据的php文件。它在单独运行时有效,但是当使用ajax调用它时它不起作用。有人可以帮助纠正错误吗?这是我的html文件:
<html>
<head>
<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
function showRoom(){
$.ajax({
type:"POST",
url:"process.php",
data:{action:showroom},
success:function(data){
$("#content").html(data);
}
});
}
showRoom();
});
</script>
</head>
<body>
<div id="content"></div>
</body>
</html>
这是我的process.php文件
<?php
$link=mysqli_connect("localhost","root","raspberry","homebot");
if (mysqli_connect_errno())
echo "Failed to connect to MySQL: " . mysqli_connect_error();
$action=$_POST["action"];
if($action=="showroom"){
$query="SELECT * FROM user";
$show=mysqli_query($link,$query) or die ("Error");
while($row=mysqli_fetch_array($show)){
echo "<li>$row['name']</li>";
}
}
?>
答案 0 :(得分:4)
ajax调用中有两个语法错误:
$(document).ready(function(){
function showRoom(){
$.ajax({
type:"POST",
url:"process.php",
data:{action:"showroom"},
success:function(data){
$("#content").html(data);
}
});
}
showRoom();
});
请记住,jQuery的ajax期望一个对象作为参数。在对象内部语法是
{ key : value }
你的type =“POST”在声明性语法中是正确的,但在定义对象键时是错误的。
其次,上述对象的数据属性也应该是一个对象。因此,而不是动作=陈列室应该是
{action:"showroom"}
答案 1 :(得分:1)
你在代码中犯了错误:
echo "<li>$row['name']</li>";
这应该是:
echo "<li>".$row['name']."</li>";
试试......