IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] IE 6


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 56
    Points : 46
    Points
    46
    Par défaut [AJAX] IE 6
    Bonjour,

    J'ai creer un petit sondage en Ajax, ca fonctionne sous Firefox mais pas sous IE 6
    Si je ne fait pas le test if(xhr.readyState == 4 && xhr.status == 200 il me fait comme erreur : les donnees necessaires pour terminer cette opération ne sont pas encore disponibles.

    Si je laisse le control il me fait : "erreur d'execution inconnue" à la ligne du control : if(xhr.readyState == 4 && xhr.status == 200) {


    voici mon code :

    <%
    dim requete,rs,rs2,myconn,question,reponse,idreponse,requete2,idquestion

    %>

    <br><br><center><b>Sondage</b></center><br>


    <%



    Set RS=Server.CreateObject("ADODB.Recordset")
    shopopendatabase myconn


    requete="select idquestion, question from sondage_questions where (affichage<>'' or affichage is not null)"
    set rs = myconn.execute(requete)

    if not rs.eof then
    question=rs("question")
    idquestion=rs("idquestion")
    end if
    response.write "<form method='post' name='form' id='form' action='sondage.asp'>"
    response.write "<input type='hidden' name='question' value='"&request.form("reponse")&"'/>"
    response.write "<table cellpadding='0' cellspacing='0' align='center' width='100%' id='tableau'>"
    response.write "<tr><td>"&question&"</td></tr>"

    requete2="select * from sondage_reponse where idquestion="&idquestion
    set rs2 = myconn.execute(requete2)

    do while not rs2.eof

    if not rs2.eof then
    idreponse=rs2("idreponse")
    reponse=rs2("reponse")
    end if
    %><tr><td><input type='radio' name='reponse' id='<%=idreponse%>' value='<%=idreponse%>' onclick='document.getElementById("radio").value=document.getElementById("<%=idreponse%>").value'><%=reponse%><br><%



    rs2.movenext
    loop
    %>
    <input type='hidden' id="radio" name='radio' value=''>
    <input type='hidden' id="idquestion" name='idquestion' value='<%=idquestion%>'><br>
    <input type='button' onclick='ajax()' value='Voter !'></td></tr>
    <table>
    </form>
    <%

    %>
    <script>


    function ajax()
    {
    //recupere le bouton coché du formulaire radio

    valeurformulaire=document.getElementById("radio");
    idquestion=document.getElementById("idquestion");

    var xhr;


    if (window.XMLHttpRequest) {
    xhr = new XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {
    xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }

    //on définit l'appel de la fonction au retour serveur
    xhr.onreadystatechange =
    function()
    {
    if(xhr.readyState == 4 && xhr.status == 200) {
    // Nous remplacons le contenu du div tableau par le retour du fichier reponse.asp
    document.getElementById('tableau').innerHTML = xhr.responseText;
    }

    }

    //on appelle le fichier reponse.asp
    xhr.open("GET", "http://www.monsite.com/reponse.asp?reponse="+valeurformulaire.value+"&idquestion="+idquestion.value, true);
    xhr.send(null);
    }

    function f()
    {
    var obj = document.getElementById("5");
    alert('le champ a pour valeur : "'+obj.value+"'")

    }
    //function $ (id) {
    //valeur2=document.getelementById(id);
    //return valeur2;
    //}

    </script>
    Voila si quelqu'un à une idée, d'ou peut provenir cette erreur ca m'avancerais parceque la je suis bloqué.

    Merci

    Bonne soirée

  2. #2
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 56
    Points : 46
    Points
    46
    Par défaut
    J'ai enfin trouvé mon problème, apparement c'était un probleme avec le " document.getElementById("tableau").innerHTML = xhr.responseText;

    je l'ai resolu en creant un div caché qui je rend visible au moment ou je recois ma reponse et j'insere ma reponse a l'interieur, là ca fonctionne.

    je vous met le code si vous en avez besoin :


    <!--#include file="shop$db.asp"-->
    <%setsess "currenturl","sondage.asp"%>


    <%
    dim requete,rs,rs2,myconn,question,reponse,idreponse,requete2,idquestion

    shoppageheader
    %>

    <br><br><center><b>Sondage</b></center><br>


    <%



    Set RS=Server.CreateObject("ADODB.Recordset")
    shopopendatabase myconn


    requete="select idquestion, question from sondage_questions where (affichage<>'' or affichage is not null)"
    set rs = myconn.execute(requete)

    if not rs.eof then
    question=rs("question")
    idquestion=rs("idquestion")
    end if


    %>
    mon formulaire qui sert a envoyer la requete
    <form method='post' name='form' id='form' action='sondage.asp'>
    <div>
    <table cellpadding='0' cellspacing='0' align='center' width='100%'>
    <tr><td>
    <input type='hidden' name='question' value='<%=request.form("reponse")%>'/><%=question%>
    </td></tr>
    <%

    requete2="select * from sondage_reponse where idquestion="&idquestion
    set rs2 = myconn.execute(requete2)

    do while not rs2.eof

    if not rs2.eof then
    idreponse=rs2("idreponse")
    reponse=rs2("reponse")
    end if
    %><tr><td><input type='radio' name='reponse' id='<%=idreponse%>' value='<%=idreponse%>' onclick='document.getElementById("radio").value=document.getElementById("<%=idreponse%>").value'><%=reponse%><br><%



    rs2.movenext
    loop
    %>
    <input type='hidden' id="radio" name='radio' value=''>
    <input type='hidden' id="idquestion" name='idquestion' value='<%=idquestion%>'><br>
    <input type='button' onclick='ajax()' value='Voter !'></td></tr>

    <table>
    </div>
    </form>

    Le div caché qui seras visible et rempli à la reception de la réponse
    <div id='cellule' style="visibility:hidden;">
    </div>
    <%
    shoppagetrailer
    %>
    <script>
    var xhr = null;

    function ajax()
    {
    //recupere le bouton coché du formulaire radio

    valeurformulaire=document.getElementById("radio");
    idquestion=document.getElementById("idquestion");

    var xhr;


    if(window.XMLHttpRequest){ // Firefox et autres
    xhr = new XMLHttpRequest();
    //alert("firefox");
    }
    else if(window.ActiveXObject){ // Internet Explorer
    try {
    xhr = new ActiveXObject("Msxml2.XMLHTTP");
    //alert("IE1");
    } catch (e) {
    xhr = new ActiveXObject("Microsoft.XMLHTTP");
    //alert("IE2");
    }
    }
    else { // XMLHttpRequest non supporté par le navigateur
    alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
    xhr = false;
    }

    //on définit l'appel de la fonction au retour serveur
    xhr.onreadystatechange =
    function()
    {

    if ( xhr.readyState == 4 && xhr.status == 200 ) {
    // Nous rendons le div visible et remplacons le contenu du div cellule par le retour du fichier reponse.asp

    document.getElementById("cellule").style.visibility = 'visible';
    document.getElementById("cellule").innerHTML = xhr.responseText;

    }

    }

    //on appelle le fichier reponse.asp
    xhr.open("GET", "http://www.tictactime.com/reponse.asp?reponse="+valeurformulaire.value+"&idquestion="+idquestion.value, true);
    xhr.send(null);
    }



    </script>
    Si ca peut servir.

    Bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Librairies] Api AJAX
    Par ouioui2000 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 20/10/2005, 16h57
  2. [AJAX] Effectuer plusieur appel ajax
    Par shwin dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 06/10/2005, 16h40
  3. [AJAX] Ajax et javascript contenu
    Par zekey dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 30/09/2005, 20h16
  4. [AJAX] AJAX et javascript
    Par spud5351 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/09/2005, 10h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo