使用ajax

时间:2015-10-07 10:38:49

标签: javascript php jquery html

我想通过ajax从数据库中获取数据,但它只给我一条记录而不是其他记录但是我想要数据库中的所有记录我搜索过多了解问题 但是不能得到那个

enter image description here

即数据库图像

php代码

 //-------------------------------------------------------------------------- 
  // Example php script for fetching data from mysql database
  //--------------------------------------------------------------------------
  $host = "localhost";
  $user = "root";
  $pass = "";

  $databaseName = "search";
  $tableName = "ajax01";

  //--------------------------------------------------------------------------
  // 1) Connect to mysql database
  //--------------------------------------------------------------------------
  include 'DB.php';
  $con = mysql_connect($host,$user,$pass);
  $dbs = mysql_select_db($databaseName, $con);

  //--------------------------------------------------------------------------
  // 2) Query database for data
  //--------------------------------------------------------------------------
  $result = mysql_query("SELECT * FROM $tableName");          //query
  $array = mysql_fetch_row($result);                          //fetch result    

  //--------------------------------------------------------------------------
  // 3) echo result as json 
 //--------------------------------------------------------------------------
  echo json_encode($array);

?> 

HTML                                    

  <!-------------------------------------------------------------------------
  1) Create some html content that can be accessed by jquery
 -------------------------------------------------------------------------->
  <h2></h2>


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

  $(function () 
  {
//-----------------------------------------------------------------------
// 2) Send a http request with AJAX http://api.jquery.com/jQuery.ajax/
//-----------------------------------------------------------------------
$.ajax({                                      
  url: 'api.php',                  //the script to call to get data          
  data: "",                        //you can insert url argumnets here to    pass to api.php
                                   //for example "id=5&parent=6"
  dataType: 'json',                //data format      
  success: function(data)          //on recieve of reply
  {
   // var id = data[0];              //get id
  //  var vname = data[1];           //get name
    //--------------------------------------------------------------------
    // 3) Update html content
    //--------------------------------------------------------------------
    $('#output').html("<b>id: </b>"+id+"<b> name: </b>"+name); //Set output     element html
    //recommend reading up on jquery selectors they are awesome 
    // http://api.jquery.com/category/selectors/
  } 
});
 }); 

  </script>
 </body>
</html>

3 个答案:

答案 0 :(得分:4)

你只能获得一排。

$array = mysql_fetch_row($result);  

你需要循环该行并继续运行,直到你用完行为止(在你去的时候创建一个行数组)。

然后json_encode最后一个数组。

答案 1 :(得分:1)

mysql_fetch_row只从查询结果中获取一条记录。您需要将每行查询结果存储在一个数组中,然后最终将该数组转换为其JSON表示。

$records = [];

while( $row = mysql_fetch_row( $result ) ){
    array_push( $records, $row );
}

echo json_encode( $records );

用此替换代码的mysql_fetch_rowjson_encode行来实现它。

答案 2 :(得分:1)

最好的方法是使用3个不同的文件;

  • php_page.php
  • 的script.js
  • php_handler.php

在php_page.php中你实际上有HTML 在script.js中,您使用ajax发出请求 在php_handler.php中,您可以提供响应,然后您可以建立连接并从数据库中获取所需的所有数据!

php_page.php

$(document).ready(function() {
    $("#list").on("click", function() {
        $.ajax({
            url: "php_handler.php"
        }).done(function(data){
            $(this).empty().append("<li>"+ data +"</li>");
        });
    });
});

的script.js

<?php
$con = mysqli_connect($host, $user, $pass, $db);

$query = mysqli_query($con, "SELECT [FIELD_NAME] FROM [TABLE_NAME]");

foreach($query as $data)
{
    echo '<li>' . $data . '</li>';
}
?>

php_handler.php

{{1}}