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 : Sélectionner tout - Visualiser dans une fenêtre à part
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