Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1310 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  (resolu) Aide pour script ajax

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

(resolu) Aide pour script ajax

n°2174171
mozvillat
Posté le 05-02-2013 à 14:41:31  profilanswer
 

Bonjour,
 
J'utilise un script permettant d'afficher dynamiquement des formulaires en fonction du choix fait dans un bouton radio.
Ce script fonctionne bien sous firefox ou cgrome mais plantage sous ie8... je ne comprend pas pourquoi.
 
Voici le code en question :
 

Code :
  1. <script type="text/javascript">
  2.   var xhr = null;
  3. function getXhr(){
  4. if (window.XMLHttpRequest) { // Mozilla, Safari, ...
  5.     xhr = new XMLHttpRequest();
  6.     //xhr.overrideMimeType('text/xml');
  7. }  else if (window.ActiveXObject) { // IE
  8.     xhr = new ActiveXObject("Microsoft.XMLHTTP" );
  9. }
  10. else { // XMLHttpRequest non supporté par le navigateur  
  11. alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..." );
  12. xhr = false;
  13. }
  14. }
  15. function afficherForm(id){
  16. getXhr();
  17. xhr.onreadystatechange = function(){
  18. // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
  19. if(xhr.readyState == 1){
  20. document.getElementById("form" ).innerHTML="<p>chargement en cours...</p>";
  21. }
  22. if(xhr.readyState == 4 && xhr.status == 200){
  23. var reponse=xhr.responseText;
  24.   document.getElementById("form" ).innerHTML=reponse;
  25. }
  26. }
  27. var page;
  28. switch(id){
  29.  case '1':
  30.  page="mail.php";
  31.  break;
  32.  case '2':
  33.  page="courrier.php";
  34.  break;
  35.      case '3':
  36.  page="telephone.php";
  37.  break;
  38.     }
  39. xhr.open("GET","./formulaires/"+page,true);
  40. // ne pas oublier ça pour le post
  41. //xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  42. xhr.send("" );
  43. }
  44. function afficherSousForm(){
  45. document.getElementById("sousform" ).className="affichee";
  46. }
  47. function checkForm(){
  48. var formcontact=document.getElementById('formcontact');
  49. var inputs=formcontact.getElementsByTagName('input');
  50. for(i=0;i<inputs.length;i++){
  51. if(inputs.item(i).value=="" ){
  52. alert("veuillez remplir tous les champs" );
  53. inputs.item(i).focus();
  54. return false;
  55. }
  56. }
  57. var textareas=formcontact.getElementsByTagName('textarea');
  58. for(i=0;i<textareas.length;i++){
  59. if(textareas.item(i).value=="" ){
  60. alert("veuillez indiquer l'objet de votre demande" );
  61. textareas.item(i).focus();
  62. return false;
  63. }
  64. }
  65. var mail=document.getElementsByName("mail" )[0];
  66. var filter = /^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$/;
  67. if (!filter.test(mail.value)) {
  68. alert("L'adresse mail n'est pas valide." );
  69. mail.focus();
  70. return false;
  71. }
  72. return true;
  73. }
  74.   </script>
  75. <!-- fin de script pour formulaires AJAX //-->
  76. <!-- </head> -->
  77. <!-- debut du corps de page //-->
  78. <!-- <body> -->
  79. <div id="generale">
  80. <div id="corps2">
  81. <div id="centre">
  82. <form id="formSelection" action="./traitement_formulaire.php" method="post">
  83. <fieldset>
  84. <legend>Choix du mode de r&eacute;ponse</legend>
  85. Afin d'optimiser le temps de r&eacute;ponse &agrave; votre question, merci de choisir le mode de r&eacute;ponse souhait&eacute;.<br />
  86. <ul id="choix">
  87. <input type="radio" name="choix" value="1" onclick="afficherForm(this.value)"/>Par courrier &eacute;l&eacute;ctronique</label><br />
  88. <input type="radio" name="choix" value="2" onclick="afficherForm(this.value)"/>Par courrier postal</label><br />
  89. <input type="radio" name="choix" value="3" onclick="afficherForm(this.value)"/>Par t&eacute;l&eacute;phone</label><br />
  90. <fieldset>
  91. <legend>Informations compl&eacute;mentaires</legend>
  92. <div id="form"></div>


 
Quelqu'un aurait il une idée de ce qui bloque ??? J'avoue que je tourne en rond depuis plusieurs jour !!!!
 
Merci d'avance pour votre aide !


Message édité par mozvillat le 05-02-2013 à 16:16:55
mood
Publicité
Posté le 05-02-2013 à 14:41:31  profilanswer
 

n°2174199
mozvillat
Posté le 05-02-2013 à 16:16:25  profilanswer
 

Je m'auto repond !  
 
pour que ie ne plante pas, il faut afficher la <div form> avant de definir xhr...
 
C'est un peu con pour la mise en forme car le formulaire apparait au dessus du choix de reponse, mais au moins ca marche !!!! :-)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  (resolu) Aide pour script ajax

 

Sujets relatifs
Script PHP qui génère une page html grâce a un formulaireAide commande hmtl, ajax, cgi ?
Création d'une action en VBA Excel - Besoin d'aideProblème entre Doctype et un script
[VBS] Script Language problème aide svpAjax, scraping et ressources du navigateur ?
Aide VBA, Somme de chaque ligne d'un tableauScript Beanshell et Android
Plus de sujets relatifs à : (resolu) Aide pour script ajax


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR