[AJAX] innerHTML, setInnerHTML
Bonjour � tous!
Apr�s 3 jours de d�b�cle, je m'en remets � vous.
Comme signifi� dans le titre, mon probl�me concerne le rechargement d'une portion de page contenant du Javascript, gr�ce � AJAX.
Je m'explique :
J'ai un formulaire d'ajout de chansons (toujours les m�me projets !!). Lors de la validation de celui-ci, j'utilise XMLHttpRequest qui est cens� faire l'insertion en BD et recharger le contenu d'un DIV. Ce DIV contient � l'origine une table, qui comme vous l'aurez compris contient la liste des chansons.
Donc, lorsque je valide le formulaire, je fais appel � une fonction javascript qui s'occupe d'ins�rer en BD la nouvelle chanson saisie dans le formulaire et de recharger ma table avec les nouvelles valeurs (par un nouveau 'select' en BD).
Fonction JS ex�cut�e lors de la validation :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
if (window.XMLHttpRequest) { // Mozilla, Safari,...
httpRequest = new XMLHttpRequest();
if (httpRequest.overrideMimeType) {
httpRequest.overrideMimeType('text/xml');
}
}
else if (window.ActiveXObject) { // IE
try { httpRequest = new ActiveXObject("Msxml2.XMLHTTP"); }
catch (e) {
try { httpRequest = new ActiveXObject("Microsoft.XMLHTTP"); }
catch (e) {}
}
}
if (!httpRequest) {
alert("Abandon : blablabla...");
return false;
}
httpRequest.open('POST', 'insert.php', false);
httpRequest.onreadystatechange = function() {
if (httpRequest.readyState == 4) {
if (httpRequest.status == 200) {
setInnerHTML(document.getElementById('reload_div'), httpRequest.responseText);
} else { alert('Un problème est ...'); }
} |
Contenu du fichier 'insert.php' :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
<?php header('Content-type: text/html; charset=iso-8859-1');
mysql_connect($host,$user,$password) or die ("Erreur de conn..");
mysql_select_db ($database) or die ("Erreur de co");
$req = "insert into ...";
if ( !mysql_query ($req)) {
echo "Erreur lors de l'insertion de ...;
} else {
require_once "affich_table.php"; }
?> |
Le fichier 'affich_table.php' �tablit la structure d'un tableau avec les donn�es r�cup�r�s en BD.
Le souci, c'est que j'ai deux fonctions JS (dans 'affich_table.php') qui permettent le tri en temps r�el de la table et l'affichage d'infobulles. Ces deux fonctions utilisent jQuery.
Quant j'arrive sur la page initialement, le tri et les infobulles marchent correctement. Lorsque je r�alise une premi�re insertion et que ma table est recharg�e, ces deux fonctions ne fonctionnent plus.
Mon probl�me revient donc � l'ex�cution de code JS au travers de la fonction
Code:
httpRequest.responseText
J'ai lu �norm�ment de discussion qui traitent de ce sujet. Malheureusement, j'ai n'ai toujours pas de solutions et je suis � pr�sent compl�tement perdus.
setInnerHTML devait �tre la fonction miracle, qui permettait de 'mettre � jour' un div en prenant en compte le code javascript. Mais cela ne fonctionne pas.
J'ai essay� �galement de recharger uniquement le contenu de la table, placer dans les DIV gr�ce � 'innerHTML' et ensuite de rapell� directement mes fonctions JS. sans succ�s...
Quelqu'un peut m'expliquer la fonction append() propre � jQuery, qui semblerait �tre une solution ?
J'ai besoin d'aide l� ...
Help Me Please...