list.php
: простой код ajax, который я хочу отображать только записи таблицы Mysql:
<html> <head> <script src="jquery-1.9.1.min.js"> </script> <script> $(document).ready(function(){ var response = ''; $.ajax({ type: "GET", url: "Records.php", async: false, success : function(text) { response = text; } }); alert(response); }); </script> </head> <body> <div id="div1"><h2>Let jQuery AJAX Change This Text</h2> </div> <button>Get Records</button> </body> </html>
Records.php – это файл для извлечения записей из Mysql.
В базе данных есть только два поля: «Имя», «Адрес».
<?php //database name = "simple_ajax" //table name = "users" $con = mysql_connect("localhost","root",""); $dbs = mysql_select_db("simple_ajax",$con); $result= mysql_query("select * from users"); $array = mysql_fetch_row($result); ?> <tr> <td>Name: </td> <td>Address: </td> </tr> <?php while ($row = mysql_fetch_array($result)) { echo "<tr>"; echo "<td>$row[1]</td>"; echo "<td>$row[2]</td>"; echo "</tr>"; } ?>
Этот код не работает.
Для получения данных с использованием Ajax + jQuery необходимо написать следующий код:
<html> <script type="text/javascript" src="jquery-1.3.2.js"> </script> <script type="text/javascript"> $(document).ready(function() { $("#display").click(function() { $.ajax({ //create an ajax request to display.php type: "GET", url: "display.php", dataType: "html", //expect html to be returned success: function(response){ $("#responsecontainer").html(response); //alert(response); } }); }); }); </script> <body> <h3 align="center">Manage Student Details</h3> <table border="1" align="center"> <tr> <td> <input type="button" id="display" value="Display All Data" /> </td> </tr> </table> <div id="responsecontainer" align="center"> </div> </body> </html>
Для подключения mysqli напишите:
<?php $con=mysqli_connect("localhost","root",""); if (!$con) { die('Could not connect: ' . mysqli_error()); } ?>
Для отображения данных из базы данных вы должны написать:
<?php include("connection.php"); mysqli_select_db("samples",$con); $result=mysqli_query("select * from student",$con); echo "<table border='1' > <tr> <td align=center> <b>Roll No</b></td> <td align=center><b>Name</b></td> <td align=center><b>Address</b></td> <td align=center><b>Stream</b></td></td> <td align=center><b>Status</b></td>"; while($data = mysqli_fetch_row($result)) { echo "<tr>"; echo "<td align=center>$data[0]</td>"; echo "<td align=center>$data[1]</td>"; echo "<td align=center>$data[2]</td>"; echo "<td align=center>$data[3]</td>"; echo "<td align=center>$data[4]</td>"; echo "</tr>"; } echo "</table>"; ?>
в<?php include("connection.php"); mysqli_select_db("samples",$con); $result=mysqli_query("select * from student",$con); echo "<table border='1' > <tr> <td align=center> <b>Roll No</b></td> <td align=center><b>Name</b></td> <td align=center><b>Address</b></td> <td align=center><b>Stream</b></td></td> <td align=center><b>Status</b></td>"; while($data = mysqli_fetch_row($result)) { echo "<tr>"; echo "<td align=center>$data[0]</td>"; echo "<td align=center>$data[1]</td>"; echo "<td align=center>$data[2]</td>"; echo "<td align=center>$data[3]</td>"; echo "<td align=center>$data[4]</td>"; echo "</tr>"; } echo "</table>"; ?>
Вы не можете вернуть возвращаемое значение ajax. Вы сохранили глобальную переменную, сохраните возвращаемые значения после возврата.
Или измените код ur, как этот.
AjaxGet = function (url) { var result = $.ajax({ type: "POST", url: url, param: '{}', contentType: "application/json; charset=utf-8", dataType: "json", async: false, success: function (data) { // nothing needed here } }) .responseText ; return result; }
Убедитесь, что ваша $row[1] , $row[2]
содержит правильное значение, мы предполагаем здесь, что 1 = Name , and 2 here is your Address field
?
Предполагая, что вы правильно взяли свои записи из Records.php , вы можете сделать что-то вроде этого:
$(document).ready(function() { $('#getRecords').click(function() { var response = ''; $.ajax({ type: 'POST', url: "Records.php", async: false, success : function(text){ $('#table1').html(text); } }); }); }
В вашем HTML
<table id="table1"> //Let jQuery AJAX Change This Text </table> <button id='getRecords'>Get Records</button>
Небольшое примечание:
Попробуйте отказаться от PDO http://php.net/manual/en/class.pdo.php, поскольку mysql_* functions
больше не поощряются.
$(document).ready(function(){ var response = ''; $.ajax({ type: "GET", url: "Records.php", async: false, success : function(text) { response = text; } }); alert(response); });
должно быть:
$(document).ready(function(){ $.ajax({ type: "GET", url: "Records.php", async: false, success : function(text) { alert(text); } }); });