Trước hết, tôi thực sự khuyên bạn nên sử dụng một đối tượng JS cho biến dữ liệu trong các yêu cầu ajax. Điều này sẽ làm cho cuộc sống của bạn đơn giản hơn rất nhiều khi bạn sẽ có rất nhiều dữ liệu. Ví dụ:
$('h1').click(function() {
$.ajax({
type:"POST",
url: "ajax.php",
data: { "code": code },
datatype: "xml",
success: function() {
$(xml).find('site').each(function(){
//do something
});
});
});
Đối với việc lấy thông tin từ máy chủ, đầu tiên bạn sẽ phải tạo một tập lệnh PHP để lấy dữ liệu từ db. Nếu bạn giả sử nhận được nhiều thông tin từ máy chủ, thì ngoài ra, bạn có thể muốn tuần tự hóa dữ liệu của mình bằng XML hoặc JSON (tôi xin gợi ý là JSON).
Trong ví dụ của bạn, tôi sẽ giả sử bảng db của bạn rất nhỏ và đơn giản. Các cột có sẵn là id, mã và mô tả. Nếu bạn muốn lấy tất cả các mô tả tin tức cho một mã cụ thể thì PHP của bạn có thể trông như thế này. (Tôi đã không thực hiện bất kỳ PHP nào trong một thời gian nên cú pháp có thể sai)
// create data-structure to handle the db info
// this will also make your code more maintainable
// since OOP is, well just a good practice
class NewsDB {
private $id = null;
var $code = null;
var $description = null;
function setID($id) {
$this->id = $id;
}
function setCode($code) {
$this->code = $code;
}
function setDescription($desc) {
$this->description = $desc;
}
}
// now you want to get all the info from the db
$data_array = array(); // will store the array of the results
$data = null; // temporary var to store info to
// make sure to make this line MUCH more secure since this can allow SQL attacks
$code = htmlspecialchars(trim($_POST['lname']));
// query
$sql = "select * from news where code=$code";
$query = mysql_query(mysql_real_escape_string($sql)) or reportSQLerror($sql);
// get the data
while ($result = mysql_fetch_assoc($query)) {
$data = new NewsDB();
$data.setID($result['id']);
$data.setCode($result['code']);
$data.setDescription($result['description']);
// append data to the array
array_push($data_array, $data);
}
// at this point you got all the data into an array
// so you can return this to the client (in ajax request)
header('Content-type: application/json');
echo json_encode($data_array);
Đầu ra mẫu:
[
{ "code": 5, "description": "desc of 5" },
{ "code": 6, "description": "desc of 6" },
...
]
Vì vậy, ở giai đoạn này, bạn sẽ có một tập lệnh PHP trả về dữ liệu trong JSON. Cũng cho phép giả sử url của tập lệnh PHP này là foo.php
.
Sau đó, bạn chỉ cần nhận được phản hồi từ máy chủ bằng cách:
$('h1').click(function() {
$.ajax({
type:"POST",
url: "foo.php",
datatype: "json",
success: function(data, textStatus, xhr) {
data = JSON.parse(xhr.responseText);
// do something with data
for (var i = 0, len = data.length; i < len; i++) {
var code = data[i].code;
var desc = data[i].description;
// do something
}
});
});
Đó là tất cả.