• 01:00 - 15.07.2008 vite fait >> reflexion

    Si tu n'es pas idéaliste à vingt ans, c'est que tu n'as pas de coeur. Si tu l'es toujours à trente, c'est que tu n'as…

  • 08:16 - 12.07.2008 vite fait >> reflexion

    Ne jamais montrer la verité à l'adversaire, sauf lorsqu'elle est en mesure de le détruire. ...

  • 17:33 - 07.07.2008 vite fait >> reflexion

    Try not ! do or do not, but don't try ... [yoda] ...

  • 03:28 - 11.06.2008 vite fait >> reflexion

    Faire du vélo sur une roue, ça s'appelle du mono-cycle ... mais comment ça s'appelle quand on perd la roue avant d'un bi-cycle ? ...

  • 04:00 - 16.04.2008 vite fait >> reflexion

    Ceux qui pensent qu'installer Linux est difficile n'ont jamais essayé de comprendre une femme ...

Accueil arrow Php / mysql
Connectionn Ajax tout navigateur Version imprimable Suggérer par mail
27-07-2007

Cette fonction est le condensé de plusieur chaine de connection existante sur le net. Il existe des framework ajax qui font la même chose en mieux mais plus compliqué je pense... étant un adepte du plus simple possible, je l'utilise pour gerer mes appels ajax sur ce site.

entète du fichier ajax.php à adapter en fonction du mode
  1. header("Pragma: no-cache");
  2. header("Expires: 0");
  3. header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
  4. header("Cache-Control: no-cache, must-revalidate"); //mode html
  5. //header("Content-type: application/xml"); //mode XML
  6. //header("Content-type: text/js"); //mode js
  7. header("Content-Type: text/html; charset=iso-8859-1"); //vive les accents, ça evite un utf8_encode ...
 connection AJAX et exemple de fonction d'utilisation.
  1. /* utilisation de la fonction assez exhaustive mais l'appel du parseur xml est défini comme unique ... ça limite !
  2. @author : un peu bcp de monde sur le web dont nL
  3. @version : ? 1.0 ça ira ?
  4. @mode : xml : on devra parser le resultat qui aura un header en xml
  5.       , html: on affiche en direct sur la page, le header sera du html
  6.       , js  : on intérprete une requete au format JSON ( eval) le header sera un js
  7. @typ : value: un objet recois le resultat (input ...)
  8.      , innerHTML: le contenu d'un id recois le resultat
  9. function ajax( param ){
  10.     var c = document.getElementById("scroll");
  11.     var xmlhttp = getHTTPObject(c,"html","innerHTML","function_suivante()");
  12.     xmlhttp.open("POST", "ajax.php",true);
  13.     xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  14.     xmlhttp.send("param="+param);
  15. }
  16. */
  17.  
  18. function getHTTPObject(c,mode,typ,action) {
  19.     var global = this;
  20.     var xmlhttp = false;
  21.     /* Compilation conditionnelle d'IE */
  22.     /*@cc_on
  23.     @if (@_jscript_version >= 5)
  24.     try {
  25.         xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  26.     } catch (e) {
  27.         try {
  28.             xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  29.         } catch (E){
  30.             xmlhttp = false;
  31.         }
  32.     }
  33.     @else
  34.         xmlhttp = false;
  35.     @end @*/
  36.  
  37.     /* on essaie de créer l'objet si ce n'est pas déjà fait */
  38.     if (!xmlhttp && typeof XMLHttpRequest != 'undefined'){
  39.     try {
  40.         xmlhttp = new XMLHttpRequest();
  41.         // Évite un bug du navigateur Safari :
  42.         if (xmlhttp.overrideMimeType) {
  43.             xmlhttp.overrideMimeType("text/xml");
  44.         }
  45.     } catch (e) {
  46.             xmlhttp = false;
  47.             window.status("Votre navigateur ne prend pas en charge l'objet XMLHTTPRequest.");
  48.         }
  49.     }
  50.  
  51.     if (xmlhttp){
  52.         xmlhttp.onreadystatechange=function(){
  53.             if (xmlhttp.readyState == 4){ /* 4 : état "complete" */
  54.                 if (xmlhttp.status == 200) { /* 200 : code HTTP pour OK */
  55.                     switch(mode){
  56.                         case "js":
  57.                             eval(xmlhttp.responseText);
  58.                             if (typ == "innerHTML"){
  59.                                 c.innerHTML = "";
  60.                             } else {
  61.                                 c.value = "";
  62.                             }
  63.                         break;
  64.                         case "xml":
  65.                             parsexml(xmlhttp.responseXML,c);
  66.                         break;
  67.                         default:
  68.                             if (typ == "innerHTML"){
  69.                                 c.innerHTML = xmlhttp.responseText;
  70.                             } else {
  71.                                 c.value = xmlhttp.responseText;
  72.                             }
  73.                     }
  74.                     if (action != '')
  75.                         eval(action);
  76.                 } else {
  77.                     window.status = xmlhttp.status + " " + xmlhttp.statusText;
  78.                 }
  79.             } else {
  80.                 window.status = xmlhttp.readyState;
  81.             }
  82.         }
  83.     }
  84.     return xmlhttp;
  85. }
  86.  
  87. function parsexml(data){
  88. /* parsing des données xml ... */
  89.  
  90. }

 

 
Photographies au hasard