[AJAX] Script multi navigateur ajax fonctionnel javascript
Alors avec cette fonction, il est possible d'appeler un page ou d'envoyer des formulaires en ajax dans une cellule ID avec une page de r�sultat contenant des fonctions java-script sans aucun probl�me sur tous les navigateurs.
Voici le script :
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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| function donnee_get(form1)
{
var data1 = "";
var forma = document.getElementById(form1);
var elements = forma.elements;
for(var i=0; i<forma.length; i++)
{
data1 += elements[i].name + "=" +escape(elements[i].value);
if((i+1)<forma.length){data1+="&";}
}
return data1;
}
function post_get(fichier,div,method,form)
{
var xhr=null;
var data="null";
if(form!="null")
{
if(method=="GET")
{
data=form;
method="POST";
}
else{data = donnee_get(form);}
}
if (window.XMLHttpRequest){xhr = new XMLHttpRequest();}
else if (window.ActiveXObject)
{
try {xhr = new ActiveXObject("Msxml2.XMLHTTP");}
catch (e){xhr = new ActiveXObject("Microsoft.XMLHTTP");}
}
else
{
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
xhr.open( method,fichier,false);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(data);
var c = document.getElementById(div);
c.innerHTML = xhr.responseText;
try
{
var l=c.getElementsByTagName('script').length
for(var j=0;j<l;j++)
{
var script = document.createElement('script');
script.type = 'text/javascript';
script.text = c.getElementsByTagName('script').item(j).text;
document.getElementsByTagName('head')[0].appendChild(script);
}
}
catch(e)
{
alert(e);
}
} |
Voici comment utiliser cette fonction :
// ces appels permettent d'ex�cuter le script contenu dans monfichier.php et d'afficher le retour dans la div d'id div_de_destination, ici il n'y a pas de param�tre. Ce sont les appels de base, ils me servent notamment pour faire les liens hypertextes :
post_get("monfichier.php", "div_de_destination", "GET", null)
post_get("monfichier.php", "div_de_destination", "POST", null)
// cet appel permet d'ex�cuter le script contenu dans monfichier.php et d'afficher le retour dans la div d'id div_de_destination, les donn�es du formulaire sont r�cup�r�es et mises en forme (�galement encod�es avec la fonction escape, �quivalent de l'url_encode de php) par la fonction donnee_get puis sont transmises par la m�thode POST :
post_get("monfichier.php", "div_de_destination", "POST", "mon_formulaire")
// cet appel permet d'ex�cuter le script contenu dans monfichier.php et d'afficher le retour dans la div d'id div_de_destination, les donn�es du formulaire sont r�cup�r�es et mises en forme (�galement encod�es avec la fonction escape, �quivalent de l'url_encode de php) par la fonction donnee_get puis sont transmises par la m�thode POST et les donn�es a=1 et b=2 sont transmise par la m�thode GET:
post_get("monfichier.php?a=1&b=2", "div_de_destination", "POST", "mon_formulaire")
En esp�rant que ceci aidera certain, bon script a tous ;)