Utilisation de tri par AJAX

alpachinois Messages postés 4 Statut Membre -  
alpachinois Messages postés 4 Statut Membre -
Bonjour,




J'ai découvert une superbe bibliothèque pour faire des tris de tableaux combinée avec jquery via

http://www.javascripttoolbox.com/lib/table/examples.php

Cependant, j'ai des tableaux de données appelés via AJAX et je n'arrive pas à appeler les classes de cette lib alors qu'elle marche nickel lorsque je suis dans un fichier HTML classique sans AJAX. C'est pourquoi si quelqu'un pouvait m'aider à intégrer cette librairie lors de mes appels AJAX, aura toute ma gratitude .

Merci d'avance de votre aide.

5 réponses

kij_82 Messages postés 4260 Statut Contributeur 857
 
Bonjour,

Ajax est un bien grand mot dans le sens ou tu peux l'utiliser pour des choses assez diverses.
Par exemple, un simple javascript modifiant le contenu d'une page rentre dans la méthode AJAX.
Mais tu peux également appeller des scripts PHP via javascript via les objets XmlHttpRequest. Je pense que la solution à ton probleme est là, il faut que tu utilise ces objets afin d'appeller un script PHP utilisant tes bibliothèques et affichant du code javascript exécutable sur la sortie de ton script PHP (via des echo "[code javascript]"; )

Voici un exemple que tu exécutera chez toi pour comprendre le mécanisme.
Tu as cette fonction javascript définie dans un fichier "fonction.js" :
<script language="javascript">
function callScript ( scriptName, data ){
	
	var xhr_object = null; 
	     
	if(window.XMLHttpRequest) // Firefox 
	   xhr_object = new XMLHttpRequest(); 
	else if(window.ActiveXObject) // Internet Explorer 
	   xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	else { // XMLHttpRequest non supporté par le navigateur 
	   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
     return; 
	} 
	 
	xhr_object.open("POST", scriptName, true);
	     
	xhr_object.onreadystatechange = function() {
	   if(xhr_object.readyState == 4) {
			//alert(xhr_object.responseText); // DEBUG MODE
			//document.write(xhr_object.responseText);
			eval(xhr_object.responseText);
		 }
	} 
	 
	xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xhr_object.send(data);
}

function appel ( ){
   callScript("traitement.php",null);
}
</script>


Puis ton as ton script PHP dit de "traitement" qui sera appellé par la fonction callScript ci-dessus :
Code de "traitement.php" :
<?php
echo "var div = document.getElementById('toto');";
echo "div.innerHTML = 'Coucou !!';";
?>


Un code relativement simple juste pour comprendre.

Et enfin le code de ta page principale, "index.php" :
<?php
include "fonction.js";
?>

<input type='button' value='cliquer' onclick='appel()' />
<div id='toto'></div>


Voilà, lorsque tu vas cliquer sur ton bouton, le texte 'Coucou !!' va apparaitre dans ta div 'toto' juste au dessous du bouton.
Quel intéret me diras-tu puisqu'il aurait suffit de faire la même chose en javascript (juste les deux lignes des echo en PHP ? L'intérêt est justement de pouvoir faire des traitements dans ton fichier PHP de traitement (acces à une base de données, utilisation de bibliothèques PHP (ton cas), etc.) et en même temps en fonction de ce traitement d'écrire sur la sortie du code javascript qui sera exécuter à la fin de l'éxécution du code PHP, dans le navigateur du client.

Avec ca tu devrais donc être en mesure d'utiliser tes bibliothèques.
0
kij_82 Messages postés 4260 Statut Contributeur 857
 
Arf, j'ai pris le problème à l'envers je crois ^^

Tes bibliothèques sont en javascript ?
Fais voir tes différents fichier afin de comprendre leur interaction et la manière dont tu inclus les bibliothèques dedans.
0
alpachinois Messages postés 4 Statut Membre
 
Oui ce sont des lib en js.

Je n'ai pas de problème au niveau de l'appel AJAX j'aimerais juste incorporer la bibliothèque de javascripttoolbox dans les tableaux que je reçois avec le xhr.ResponseText. Car elle est assez facile à incorporer lorsqu'on a un tableau de données dans un fichier html mais ça a pas l'air de marcher quand j'essaie de passer l'attribut class ='sortable' par exemple.
0
kij_82 Messages postés 4260 Statut Contributeur 857
 
Ben.. je ne connais pas trop cette bibliothèque bien qu'elle ai l'air sympa, mais j'imagine qu'il suffit juste d'inclure les bibliothèques dans ta page web et d'y faire appel via les fonctions javascript ou un autre procédé.
Je n'ai pas plus de temps à passer sur ce problème puisque c'est le we, mais j'imagine que le procédé d'utilisation doit etre décrit dans une notice lorsque tu download ces bibliothèques. Jette un coup d'oeil pour vérifier que tu n'as pas zappé quelque chose, juste au cas ou.

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
alpachinois Messages postés 4 Statut Membre
 
Oui pas de problème pour intégrer y'a juste à dl jquery.js et table.js sur ce site et de mettre des attributs CLASS dans les balises <tr> et <th>. Mais j'aimerais juste savoir comment exécuter ses attributs quand je lance une requête via AJAX sachant que j'ai seulement trouver des codes pour lancer des tags <script> via AJAX.

Sur ce bon week end à vous.
0