2014-03-25 185 views
2

我想使用php和jquery ajax从mysql数据库获取数据。 'process.php'是连接到数据库并获取mysql数据的php文件。它在单独运行时工作,但使用ajax调用时不起作用。有人可以帮助纠正错误吗?这里是我的html文件:使用php和jquery ajax从mysql数据库获取数据

<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>"; 
    } 
} 
?> 
+1

什么不起作用?你有错误吗?它是什么?你做了什么调试? –

+0

我没有得到一个错误,但没有打印。预计从MySQL数据库打印($ row [name]) – thomas

+0

在'while'前加上'if(!mysqli_num_rows($ show))echo“no result”'。也许查询不会返回任何内容?或者尝试将'name'放在引号中。 –

回答

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"} 
+0

编辑。谢谢! – amenadiel

1

你做了错误的代码:

echo "<li>$row['name']</li>"; 

这应该是:

echo "<li>".$row['name']."</li>"; 

尝试......

相关问题