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] Multi checkbox et reqûetes


Sujet :

AJAX

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2010
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 112
    Par défaut [AJAX] Multi checkbox et reqûetes
    Salut tout le monde bon mon but est de à partir des checkbox , je clique sur un boutton qui fait appel à une fonction , cette fonction va chercher à partir de la base de données les utilisateur ayant comme Id , la value de ces checkbox ,

    le problème c'est dans send de l'ajax , comment devrais je faire pour envoyer toutes les valeurs des checkbox ?
    Mon code qui commence depuis la réponse
    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
     
    if(xhr.readyState == 4 && xhr.status == 200){
    leselect = xhr.responseText;
    // On se sert de innerHTML pour rajouter les options a la liste
    document.getElementById('livre').innerHTML =leselect;
    }
    }
    // Ici on va voir comment faire du post
    xhr.open("POST","Ajaxtest.php",true);
    // ne pas oublier ça pour le post
    xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    // ne pas oublier de poster les arguments
    // ici, l'id de l'auteur
    for (var i = 0; i < document.forms["formlivre"].elements["auteur"].length; i++ ) {
     if(document.forms["formlivre"].elements["auteur"][i].checked) {
    idauteur[i] = document.forms["formlivre"].elements["auteur"][i].value;
    alert(idauteur[i]);}
    xhr.send("idAuteur="+idauteur[i]);}
    }}
    </script>
    </head>
    <body>
    <form name ="formlivre">
    <fieldset style="width: 500px">
    <legend>Liste liées</legend>
    <label>Auteurs</label>
    <input name='auteur'  type="button" value="trouver" onclick='go()'>
    <?php
    mysql_connect("localhost","root","root");
    mysql_select_db("tes1");
    $res = mysql_query("SELECT * FROM auteur ORDER BY nom");
    while($row = mysql_fetch_assoc($res)){
    echo "<input type='checkbox' name='auteur[]' value='".$row["id"]."'>".$row["nom"];}
    ?>
    </select>
    <label>Livres</label>
    <div id='livre' style='display:inline'>
    </div>
    </fieldset>
    </form>
    </body>
    </html>
    dans l'autre fichier php ,qui fait le traitement
    Code php : 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
    <?php
    echo "<table name='livre'>";
    for($i=0;$i<count($_POST["auteur"]);$i++){
    if(isset($_POST["idAuteur"])){
    mysql_connect("localhost","root","root");
    mysql_select_db("tes1");
    $res = mysql_query("SELECT id,titre FROM livre
    WHERE idAuteur=".$_POST["idAuteur"][$i]." ORDER BY titre");
    while($row = mysql_fetch_assoc($res)){
    echo "<tr>
    <td id='".$row["id"]."'>".$row["titre"]."</td></tr>";
    }
    }
    }
    echo "</table>";
    ?>
    Quelqu'un peut m'aider ? Je suis bloqué

  2. #2
    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
    Par défaut
    Bonjour,

    Tu dois faire une seule send et sérialiser la variable de la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var idAuteur="idAuteur[]="+val1+"&idAuteur[]="+val2"&idAuteur[]="+val3;
    xhr.send(idAuteur);
    A+.

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2010
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 112
    Par défaut
    Bonjour , donc le code sera en quelque sorte comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    for (var i = 0; i < document.forms["formlivre"].elements["auteur"].length; i++ ) {
     if(document.forms["formlivre"].elements["auteur"][i].checked) {
    idauteur[i] = document.forms["formlivre"].elements["auteur"][i].value;
    }
    var idAuteur="idAuteur[]="+val1+"&idAuteur[]="+val2"&idAuteur[]="+val3;
    xhr.send(idAuteur);
    }
    }
    je ne vois pas d'où récupérer les val1 et val2 ...
    sinon dans le fichier de traitement je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $res = mysql_query("SELECT id,titre FROM livre
    WHERE idAuteur=".$_POST["idAuteur"]." ORDER BY titre");
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $res = mysql_query("SELECT id,titre FROM livre
    WHERE idAuteur=".$_POST["idAuteur"][$i]." ORDER BY titre");
    avec le $i la variable de boucle qui parcours les checkbox .. ?
    Merci pour ton aide .

  4. #4
    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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (var i = 0; i < document.forms["formlivre"].elements["auteur"].length; i++ ) {
     if(document.forms["formlivre"].elements["auteur"][i].checked) {
    idauteur[i] = "idAuteur[]="+document.forms["formlivre"].elements["auteur"][i].value;
    }
    xhr.send(idauteur.join("&"));
    A+.

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2010
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 112
    Par défaut
    Quand je reçois ce qui est envoyé , je le traite normalement ?je veux dire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE idAuteur=".$_POST["idAuteur"]."
    ou alors j'agis sur le tableau ?
    Merci

  6. #6
    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
    Par défaut
    $_POST["idAuteur"] est un tableau.

  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
    Par défaut
    Attention, il te manque un } fermante pour le boucle for avant le send
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for (var i = 0; i < document.forms["formlivre"].elements["auteur"].length; i++ ) {
    	 if(document.forms["formlivre"].elements["auteur"][i].checked) {
    		idauteur[i] = "idAuteur[]="+document.forms["formlivre"].elements["auteur"][i].value;
    	}
    }
    xhr.send(idauteur.join("&"));
    A+.

  8. #8
    Membre confirmé
    Inscrit en
    Juin 2010
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 112
    Par défaut
    Oui donc pas de IN implode .. ?
    Je suis désolé si mes questions sont bêtes , mais je suis nouveau là
    Je tiens à t'informer que le code javascript ne marche pas j'ignore pourquoi , j'ai ajouté un alert pour verifier mais alert ne marche pas , le send est it dans la boucle for ? je pense non !

  9. #9
    Membre confirmé
    Inscrit en
    Juin 2010
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 112
    Par défaut
    J'ai corrigé la boucle fermante mais en vaine
    Voilà mes deux fichiers , vous pouvez tester chez vous ?
    Fichiers attachés Fichiers attachés

  10. #10
    Membre confirmé
    Inscrit en
    Juin 2010
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 112
    Par défaut
    Sur firebug j'ai eu :
    document.forms.formlivre.elements.auteur is undefined
    [Stopper sur une erreur] for (var i = 0; i < document.forms["fo...].elements["auteur"].length; i++ ) {

  11. #11
    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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms["formlivre"].elements["auteur[]"]

  12. #12
    Membre confirmé
    Inscrit en
    Juin 2010
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 112
    Par défaut
    J y 'ai déjà pensé mais quand j'ai fait tel , j'ai eu
    idauteur is not defined
    Je devrais faire
    idauteur =new array(); ?

  13. #13
    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
    Par défaut
    Citation Envoyé par AyManoVic Voir le message
    J y 'ai déjà pensé mais quand j'ai fait tel , j'ai eu
    idauteur is not defined
    Je devrais faire
    idauteur =new array(); ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var idauteur =new Array();
    et avant le boucle for. je ne sais pas s'il fallait préciser ça aussi.
    A+.

  14. #14
    Membre confirmé
    Inscrit en
    Juin 2010
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 112
    Par défaut
    Non pas la peine de préciser , bon l'ajax marche nickel , le problème maintenant c'est dans le Fetch_assoc , bon fini de vous embêter je vais chercher ailleurs ^_^ Merci pour tout

  15. #15
    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
    Par défaut
    Citation Envoyé par AyManoVic Voir le message
    Non pas la peine de préciser
    J'ai dit ça parce qu'avec un simple recherche sur google, tu aurais pu s'en sortir seul.

    A+.

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

Discussions similaires

  1. Multi checkbox et envoi des valeurs avec ajax
    Par guillaumeIOB dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/11/2017, 10h42
  2. [AJAX] Multi Checkbox et Ajax
    Par Are-no dans le forum AJAX
    Réponses: 1
    Dernier message: 15/06/2009, 15h00
  3. [AJAX] Ajax Multi httprequest
    Par foxblue dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/09/2007, 08h15
  4. [AJAX] Ajax multi requêtes VS Hebergement
    Par zhell dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/04/2007, 18h06
  5. [MySQL] multi checkbox et fonction mail
    Par guillaumeIOB dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 25/02/2007, 11h35

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