コールバックで返されるリクエストを実行したいのですが、
実は何かをクリックすると会話が消えてしまうシステムなのですが、
そこで、クエリを実行し始めました。要素をクリックすると、リクエストを返すデータが php ファイルに送信されます。
以下は私のjqueryコードです:
$( ".load_message" ).click(function() {
//On marque uniquement l'id de l'expediteur et du destinataire
// pour chercher les messages expédiés par A vers B ou inversement
var from = $(this).closest('tr').find('span.from').text();
var to = $(this).closest('tr').find('span.to').text();
$.ajax({
type: 'POST',
url: 'pages_ajax/fetch-messages.php',
data: { from: from, to: to},
dataType: "json",
beforeSend:function(){
// this is where we append a loading image
$('#message_display').empty()
$('#message_display').attr('style','text-align:center');
$('#message_display').append('<img src="images/loading.gif" alt="Loading..." />');
},
success:function(data){
// successful request; do something with the data
if(data.error==1){
$('#message_display').empty().removeAttr('style');
}
// if faliure
else if(data.error==0){
// failed request; give feedback to user
$('#message_display').empty().removeAttr('style');
$('#message_display').attr('class','error').empty().append('<b>Il n\'y a pas de messages à afficher.</b>');
}
},
error:function(){
// failed request; give feedback to user
$('#message_display').empty().removeAttr('style');
$('#message_display').attr('class','error').empty().append('<b>Il n\'y a pas de messages à afficher.</b>');
}
});
});
PHPファイルでは、SQLリクエストを返すだけです
ここに私のphpファイルがあります
<?php
session_start();
require_once("../../lib_php/librairie.php");
require_once("../../config/connexion.php");
header('Content-Type: application/json; charset=utf8');
/**
* Fonction qui retourne une liste de messages
* @return int
*/
function fetchMessages() {
$from = mysql_real_escape_string($_POST['from']);
$to = mysql_real_escape_string($_POST['to']);
$query = "SELECT `id`, `from`, `to`, `message`, `sent`, `read`, `direction`
FROM `cometchat`
WHERE `from` = {$from} || `from` = {$to} || `to` = {$to} || `to` = {$from}";
$data = mysql_query($query);
if (mysql_num_rows($data) == 0) {
$data['error'] = 1;
$data['sql'] = $data;
} else {
$data['sql'] = null;
$data['error'] = 0;
}
return $data;
}
echo fetchMessages();
そのクエリでループを作成してすべての結果をdivに表示する方法がわかりません.クエリを返すのは初めてなので、通常はいくつかの変数を返すだけです. しかし、今回はあまりにも多くのデータが表示されます。
どんな種類の助けも大歓迎です。