使用ajax和php获取我的mysql数据库中的所有行

时间:2015-05-22 06:21:32

标签: php jquery ajax mysqli

伙计们我有一个问题,实际上我的PHP代码是正确的,但我不知道为什么它显示未定义到我的客户端脚本。有人可以帮助我

这是我的api.php这是我把我的php

<?php 
 $dbcon = mysqli_connect("localhost", "root", "", "orms") or die("Server not  available" . mysql_error());
 $data = array();
 $result = mysqli_query($dbcon,"SELECT * FROM cottages") or die(mysqli_error());            //query
//$array = mysqli_fetch_row($result);
$data = array();
while($row = mysqli_fetch_assoc($result))
 {
  $data[] = $row;
 }
 echo json_encode( $data )                          //fetch result    
?>

这是我的client.php代码

   <?php 
     $dbcon = mysqli_connect("localhost", "root", "", "orms") or die("Server not available" . mysql_error());
 ?>
<html>
 <head>
<script language="javascript" type="text/javascript" src="jquery.js">    </script>
 </head>
 <body>
  <h2> Client example </h2>
 <h3>Output: </h3>
  <div id="output"></div>

  <script id="source" language="javascript" type="text/javascript">

  $(function () 
  {
$.ajax({                                      
url: 'api.php', data: "POST", dataType: 'json',  success: function(rows)        
 {
   for (var i in rows)
   {
  var row = rows[i];          

  var cot_id = row[0];
  var image = row[1];
  $('#output').append("<b>cottage: </b>"+cot_id+"<b> image: </b>"+image)
              .append("<hr />");
      } 
     } 
       });

    }); 
  </script>

       </body>
         </html>  

感谢您的帮助..

1 个答案:

答案 0 :(得分:1)

您正在使用mysqli_fetch_assoc,因此该行将是一个关联数组,该数组将变为Javascript对象。但是在Javascript代码中,您正在访问row,就好像它是一个数组,而不是一个对象。您需要使用列名:

var cot_id = row.cot_id;
var image = row.image;

(我只是猜测列名,因为您使用了SELECT *所以我无法在表格中看到实际的名称。)