まず、ajaxリクエストのデータ変数にJSオブジェクトを使用することを強くお勧めします。これにより、大量のデータがある場合に、作業が非常に簡単になります。例:
$('h1').click(function() {
$.ajax({
type:"POST",
url: "ajax.php",
data: { "code": code },
datatype: "xml",
success: function() {
$(xml).find('site').each(function(){
//do something
});
});
});
サーバーからの情報の取得に関しては、最初にデータベースからデータを引き出すためのPHPスクリプトを作成する必要があります。サーバーから多くの情報を取得する場合は、さらに、データをXMLまたはJSONでシリアル化することをお勧めします(JSONをお勧めします)。
あなたの例では、あなたのデータベーステーブルは非常に小さくて単純であると仮定します。使用可能な列は、ID、コード、および説明です。特定のコードのすべてのニュースの説明を取得したい場合、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" },
...
]
したがって、この段階では、JSONでデータを返すPHPスクリプトが作成されます。また、このPHPスクリプトのURLが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
}
});
});
それだけです。