29-06-2010, 12:23 AM
(Modification du message : 29-06-2010, 01:07 AM par Sephi-Chan.)
Coucou,
Bon, c'était évident, sauf que j'y ai passé encore 4h ... grumf !
Enfin, maintenant, la partie AJAX avec JSON est opérationnel. Je vous met des bouts de codes et vous renvoie vers ma page d'essai.
http://www.magdales.com/test_jquery_et_json.php
Page appelante :
Page ciblé pour l'échange de donnée :
Format des données (sortie d'un simple mysql query et mis dans un tableau):
Ce qui donne le code JSON :
Je crois que je n'oublie rien. Le formalisme de la base de donnée importe peu.
Bonne soirée ^^.
kéké qui va se coucher ... glups ! je me lève dans 4h ... bouuhhh !
Bon, c'était évident, sauf que j'y ai passé encore 4h ... grumf !
Enfin, maintenant, la partie AJAX avec JSON est opérationnel. Je vous met des bouts de codes et vous renvoie vers ma page d'essai.
http://www.magdales.com/test_jquery_et_json.php
Page appelante :
<!doctype html>
<html>
<head>
<script type="text/javascript" src="./scripts/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="./scripts/jquery.timers-1.2.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var compteur = -1;
var nb_distinction = 5;
// var texte_id_distinction = "";
var tableau_data = new Array();
tableau_data[0] = 'test'; // Pourquoi devons nous initier cette variable ??? En tous les cas firebug semble pas apprecier sans.
// Cette boucle tourne toutes les 5 secondes. Son but, afficher une liste de joueur avec des distinctions. Les données sont récupéré au début via de l'AJAX. Lorsque toutes les informations sont affichées, on va rechercher de la nouvelle donnée.'
$(document).everyTime(2000, function() { // 5000 = 5 secondes
if (compteur == -1 || compteur >= nb_distinction)
{
compteur = 0;
$.getJSON("ajax_liste_distinction_desc.php", {positionnement: compteur}, function(data) {
// format result
texte_id_distinction = "";
tableau_data = eval(data);
/* texte_id_distinction = tableau_data.nb ;
i = 2;
texte_id_distinction = tableau_data[i].id_distinction_joueur ;*/
nb_distinction = tableau_data.nb ;
// ce message est à titre informatif ... il disparaitra par la suite
$("#tableau_dynamique").html('<br>' + compteur + ' vs ' + nb_distinction + ' Recherche Information via AJAJSON . Nb résultat = ' + tableau_data.nb + ' test = ' + tableau_data[0].id_distinction_joueur);
}
);
}
else if (compteur < nb_distinction )
{
// ici on indique ce qui va remplacer nos cases.
// le tableau renvoyé par php est de la forme : id_distinction_joueur, nom_joueur, nom_distinction
$("#tableau_dynamique").html('<br>' + compteur + ' Le sage : ' + tableau_data[compteur].nom_joueur + ' a reçu la distinction ' + tableau_data[compteur].nom_distinction );
compteur ++ ;
}
// $("#tableau_dynamique").html($("#tableau_dynamique").html + '.');
});
});
</script>
</head>
<body>
<h1>Page de test AJAX</h1>
<div id="tableau_dynamique">Info : Les quelques premières lignes seront pré-chargée en PHP. Ce bloc sera remplacé par Javascript dans quelques secondes.</div>
</body>
</html>
Page ciblé pour l'échange de donnée :
<?php
include_once 'configBDD.php';
$erreur_connect = NULL;
$link = @mysql_connect($host,$user,$passe);
$select_base = mysql_select_db($base);
include_once 'fonctions/distinction.php';
$ajax_liste_derniere_distinction_joueur = ajax_liste_derniere_distinction_joueur ();
//header('Content-type: text/xml');
// print_r ($ajax_liste_derniere_distinction_joueur);
header('Content-Type: application/json');
echo json_encode($ajax_liste_derniere_distinction_joueur);
?>
Format des données (sortie d'un simple mysql query et mis dans un tableau):
function ajax_liste_derniere_distinction_joueur ($positionnement = 1)
{
if ($positionnement <= 0 )
{
$positionnement = 1;
}
$ord_distinction = ord_distinction ();
$i = 0;
$sql_query = "SELECT id_distinction_joueur, id_distinction, id_joueur FROM distinction_joueur order by id_distinction_joueur desc LIMIT ".$positionnement." , 50" ;
// echo '<br>'.$sql_query; '<br>';
$result = mysql_query($sql_query) or die('Erreur : $distinction_joueur : '. mysql_error());
while ( $line = mysql_fetch_array($result, MYSQL_ASSOC))
{
$distinction_joueur[$i]['id_distinction_joueur'] = $line['id_distinction_joueur'];
$distinction_joueur[$i]['id_distinction'] = $line['id_distinction'];
$distinction_joueur[$i]['id_joueur'] = $line['id_joueur'];
// on chope le login du joueur
$info_joueur = info_joueur ($line['id_joueur']);
$distinction_joueur[$i]['nom_joueur'] = $info_joueur['login'];
$distinction_joueur[$i]['nom_distinction'] = $ord_distinction[$distinction_joueur[$i]['id_distinction']]['nom'];
$i ++;
}
if ($i == 0 && $positionnement > 0)
{
return ajax_liste_derniere_distinction_joueur ($positionnement - 5);
}
$distinction_joueur['nb'] = $i;
return $distinction_joueur;
}
Ce qui donne le code JSON :
{
"0": {
"id_distinction_joueur": "2",
"id_distinction": "67",
"id_joueur": "2",
"nom_joueur": "keke_admin",
"nom_distinction": "Nerd"
}, "1": {
"id_distinction_joueur": "1",
"id_distinction": "69",
"id_joueur": "2",
"nom_joueur": "keke_admin",
"nom_distinction": "Mathusalem"
}, "nb": 2
}
Je crois que je n'oublie rien. Le formalisme de la base de donnée importe peu.
Bonne soirée ^^.
kéké qui va se coucher ... glups ! je me lève dans 4h ... bouuhhh !