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

AJAX Discussion :

[AJAX] Script ajax ne récupére pas les données du script php


Sujet :

AJAX

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 213
    Points : 92
    Points
    92
    Par défaut [AJAX] Script ajax ne récupére pas les données du script php
    Bonjour,

    j'ai un tableau avec des cases à cocher lorsqu'on clique sur envoyer cela transmet la valeur choisie à un script php qui doit renvoyer quelque chose. Mais le souci c'est que le responseText est vide, sans l'ajax cela fonctionne.
    La partie avec le formulaire et les cases à
    cocher :

    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
    <html><head>
     
    <title></title> <script language = "JavaScript" type = "text/javascript">
      function ajax()
    {
        var xhr=null;
     
        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() { alertContents(xhr); };
     
     
     
     
        //on appelle le script php
        xhr.open("GET", "http://localhost/joomla_K1.0/components/com_kunena/template/default/poll_save_datas.php", true);
        xhr.send(null);
    }
     
    function alertContents(xhr) {
            if (xhr.readyState == 4) {
     
                    alert(xhr.responseText);
     
            }
     
        }
     
     
     
    </script>
     </head>
    <body><!--  -->
    <div id="moncadre"><form method="get" onSubmit="javascript:ajax();" action="">
     
    <?php $number = "3";
    echo "<div id=\"moncadre1\">titre du sondage :</div>";
    for($i=0; $i < $number;$i++)
    {
      echo "<div id=\"moncadre2\">Un nom".$i."<input type=\"radio\" name=\"radio\" value=\"Un nom".$i."\"/></div>";
    }
    echo "<div id=\"moncadre1\"><input type=\"submit\" value=\"Voter\" /><input type=\"button\" value=\"Résultats\" /></div>";
       ?>
     
    </form></div>
     
    </body>
    </html>
    La partie php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $datas = $_GET['radio'];
    if(isset($datas)){
      return $datas;
    }
    Je voudrais savoir d'ou vient mon problème, merci d'avance.

  2. #2
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.open("GET", "http://localhost/joomla_K1.0/components/com_kunena/template/default/poll_save_datas.php", true);
    Tu ne passes pas tes paramètres des radiobuttons. Ils doivent être associés dans l'URL (en GET)

    ERE

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Salut,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var data=document.forms[0].elements['radio'].value;
    xhr.open("GET", "http://localhost/joomla_K1.0/components/com_kunena/template/default/poll_save_datas.php?radio="+data, true);

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 213
    Points : 92
    Points
    92
    Par défaut
    J'ai modifié mon code avec la solution que vous m'avez proposé, mais l'autre problème est que "alert(xhr.responseText);" renvoie bien une alert mais qui est vide. Pourtant la variable data contient bien quelque chose, je ne vois pas d'ou cela peut provenir.

    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
    <html><head>
     
    <title></title>
      <script language = "JavaScript" type = "text/javascript">
      function ajax()
    {
        var xhr=null;
        var data = document.getElementById('toto0').getAttribute('value');
        alert(data);
     
        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() { alertContents(xhr); };
     
     
     
     
        //on appelle le fichier reponse.txt
        xhr.open("GET", "poll_save_datas.php?radio="+data, true);
        xhr.send(null);
    }
     
    function alertContents(xhr) {
            if (xhr.readyState == 4) {
     
                    alert(xhr.responseText);
     
            }
     
        }
     
     
     
    </script>
     </head>
    <body><!--  -->
    <div id="moncadre"><form onSubmit="javascript:ajax();" >
     
    <?php $number = "3";
    echo "<div id=\"moncadre1\">titre du sondage :</div>";
    for($i=0; $i < $number;$i++)
    {
      echo "<div id=\"moncadre2\">Un nom".$i."<input id=\"toto".$i."\" type=\"radio\" name=\"radio\" value=\"Unjjjjjjjnom".$i."\"/></div>";
    }
    echo "<div id=\"moncadre1\"><input type=\"submit\" value=\"Voter\" /><input type=\"button\" value=\"Résultats\" /></div>";
       ?>
     
    </form></div>
     
    </body>
    </html>

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(isset($_GET['radio'])){
      echo $_GET['radio'];
    }

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 213
    Points : 92
    Points
    92
    Par défaut
    J'avais fait quelque chose de similaire, mais après exécution du script php je reçois bien une alert mais qui ne contient pas de texte.

  7. #7
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    N'utilise pas submit avec ajax car cela recharge la page l'appel ajax ne sera pas executé.
    Utilise un simple bouton.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form>
    ......
    echo "<div id=\"moncadre1\"><input type=\"button\" value=\"Voter\" onclick=\"ajax()\"/><input type=\"button\" value=\"Résultats\" /></div>";

  8. #8
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 213
    Points : 92
    Points
    92
    Par défaut
    Merci pour le coup de main, maintenant cela marche

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

Discussions similaires

  1. [AJAX] script ajax basique qui n'est pas executé
    Par cuisto44000 dans le forum AJAX
    Réponses: 31
    Dernier message: 22/12/2011, 19h55
  2. Réponses: 6
    Dernier message: 22/05/2008, 11h59
  3. [AJAX] N'importe qui peut voir les données de mon fichier XML
    Par KoosMos dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 30/11/2007, 11h48
  4. y'a pas les données quand je veux imprimer
    Par StyleXP dans le forum Bases de données
    Réponses: 38
    Dernier message: 25/03/2006, 19h15

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