Преди всичко бих препоръчал горещо да използвате JS обект за променливата на данните в ajax заявките. Това ще направи живота ви много по-лесен, когато имате много данни. Например:
$('h1').click(function() {
$.ajax({
type:"POST",
url: "ajax.php",
data: { "code": code },
datatype: "xml",
success: function() {
$(xml).find('site').each(function(){
//do something
});
});
});
Що се отнася до получаването на информация от сървъра, първо ще трябва да направите PHP скрипт за изтегляне на данните от db. Ако се предполага, че ще получите много информация от сървъра, тогава в допълнение може да искате да сериализирате данните си в XML или JSON (бих препоръчал JSON).
Във вашия пример ще приема, че вашата db таблица е много малка и проста. Наличните колони са идентификатор, код и описание. Ако искате да изтеглите всички описания на новините за конкретен код, вашият PHP може да изглежда така. (Не съм правил никакъв PHP от известно време, така че синтаксисът може да е грешен)
// 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);
Примерният изход:
[
{ "code": 5, "description": "desc of 5" },
{ "code": 6, "description": "desc of 6" },
...
]
Така че на този етап ще имате PHP скрипт, който връща данни в JSON. Също така нека приемем, че URL адресът на този PHP скрипт е foo.php
.
След това можете просто да получите отговор от сървъра чрез:
$('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
}
});
});
Това е всичко.