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 :

Recup de checkbox en javascript/php


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    369
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 369
    Points : 61
    Points
    61
    Par défaut Recup de checkbox en javascript/php
    Bonjour,

    J'ai une petit problème

    Je vous décrit ma page : j'ai un premier tableau avec quelque collonnes et plus particulièrement des checkbox
    (checkbox car l'utilisateur doit pouvoir choisir plusieurs lignes)
    ensuite j'ai trois bouttons ajouter modifier et supprimer
    enfin un deuxième tableau et au lieu de checkbox des radio.

    Mon problème aujourd'hui est de récupérer grâce a une fonction javascript la ou les valeurs coché par l'utilisateur des checkbox pour les transmettre dans une popup.

    Alors hier on m'a aidé (car je suis une bille en JS c'est du charabiat) a faire une fonction pour récupérer les valeurs radio
    et l'on m'a dit que c'était le meme système sauf qu'il faut récupérer les valeurs dans un tableau.

    Si ca peut vous donner une indication

    je vous met la fonction JS
    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
     
    function ouvreFenetreModifier() 
    { 
    valeurCheckDansLien=""; 
    TabChecks=document.getElementsByName('check'); 
    TCL=TabChecks.length; 
    for( var i=0;i<TCL;i++) { // ici on parcourre les elements pour savoir lequel est coché 
    if(TabChecks[i].checked) { 
    valeurCheckDansLien="Modif_plan.php?check="+TabChecks[i].value; 
    } 
    } 
    if( valeurCheckDansLien.length > 0){// si un radio est coché 
    window.open(valeurCheckDansLien, "", config='width=600, height=600, resizable=no, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no'); 
    } else { 
    alert("pas de d'arrêts chaînes selectionné !") //si pas de radio coché 
    } 
     
    }
    ainisi que mon tableau en php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    echo "<tr>"; 
    echo "<td class='table-ligne1-centre' width='100'> <input type='checkbox' name='checkbox1' > </td>"; 
    echo "<td class='table-ligne1-centre' width='100'>$TYPE</td>"; 
    echo "<td class='table-ligne1-centre' width='100'>$DEBUT</td>"; 
    echo "<td class='table-ligne1-centre' width='100'>$FIN</td>"; 
    echo "<td class='table-ligne1-centre' width='100'>$CONSTAT</td>"; 
    echo "<td class='table-ligne1-centre' width='100'>$DEMANDE</td>"; 
    echo "<td class='table-ligne1-centre' width='100'>$CAUSE</td>"; 
    echo "<td class='table-ligne1-centre' width='100'>$INFO</td>"; 
    echo "<td class='table-ligne1-centre' width='100'>$IMPUTATION</td>"; 
    echo "</tr>";
    Si vous pouvez m'aider svp

    merci d'avance

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 103
    Points : 92
    Points
    92
    Par défaut
    Bonjour,

    La méthode getElementsByName te permet de récupérer tous les éléments de ta page ayant pour NAME la valeur passée en paramètre.
    Ici, tu récupère en javascript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getElementsByName('check')
    alors que dans ton code, tu as
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='checkbox' name='checkbox1' >
    Voilà, sinon, cela fonctionnera effectivement exactement pareil entre des checkbox et des boutons radios, à ceci près que plusieurs checkbox peuvent être cochées en même temps, ce qui n'est pas le cas des boutons radio.

    Donc, quand tu écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(TabChecks[i].checked) { 
    valeurCheckDansLien="Modif_plan.php?check="+TabChecks[i].value; 
    }
    valeurCheckDansLien sera valorisé avec la dernière valeur cochée trouvée ...
    N'hésites pas si tu as besoin de plus amples informations pour la suite de ton javascript.

  3. #3
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    369
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 369
    Points : 61
    Points
    61
    Par défaut
    justement comment feriez vous pour que la variable que je retourne ne prenne pas que la dernière valeur quand il y en a plusieurs de cocher mais je les voudrais toutes.

    sachant que j'ai modifié ce que vous m'avez dit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "<td class='table-ligne1-centre' width='100'> <input type=\"checkbox\" id=\"check_" .$i++. "\" name=\"check\" value='".$NUM."' /> </td>";
    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
     
    function ouvreFenetreModifier() 
    { 
    valeurCheckDansLien=""; 
    TabChecks=document.getElementsByName('check'); 
    TCL=TabChecks.length; 
    for( var i=0;i<TCL;i++) { // ici on parcourre les elements pour savoir lequel est coché 
    if(TabChecks[i].checked) { 
    valeurCheckDansLien="Modif_plan.php?check="+TabChecks[i].value; 
    } 
    } 
    if( valeurCheckDansLien.length > 0){// si un radio est coché 
    window.open(valeurCheckDansLien, "", config='width=600, height=600, resizable=no, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no'); 
    } else { 
    alert("pas de d'arrêts chaînes selectionné !") //si pas de radio coché 
    }

  4. #4
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    concaténation dans une variable avec un séparateur

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 103
    Points : 92
    Points
    92
    Par défaut
    Je vais répondre à ta question : si tu veux toutes les valeurs, il te faut concaténer par exemple les valeurs dans une variable temporaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var valeurCheckDansLien=""; 
    var TabChecks=document.getElementsByName('check'); 
    var TCL=TabChecks.length; 
    for( var i=0;i<TCL;i++) { // ici on parcourre les elements pour savoir lequel est coché 
    if(TabChecks[i].checked) { 
    valeurCheckDansLien = valeurCheckDansLien + TabChecks[i].value; // dernière valeur trouvée concaténée à la précédente.
    }  
    } 
    // on met le tout à la suite de modifPlan.php
    valeurCheckDansLien="Modif_plan.php?check="+valeurCheckDansLien ;
    Ceci dit, je ne suis pas une pro du PHP, mais si tes checkbox sont dans un formulaire, tu devrais retrouver leur valeur passée en POST ou en GET dans le page cible de ton formulaire.
    Ainsi, si la page Modif_plan.php est la cible de ton formulaire, tu devrais pouvoir directement accéder à la valeur de tes checkbox sans les passer via l'URL.
    C'est le but d'un langage serveur. Vois peut être sur le forum PHP.

    J'espère t'avoir aidé

  6. #6
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    369
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 369
    Points : 61
    Points
    61
    Par défaut
    Et bien je sais que je pourrais utiliser post ou get ou meme session ...

    Mais le problème c'est que je dois utiliser des popup (window open) et donc pas possible d'utiliser ce genre de méthode donc il faut que je les passe par l'url obligé.

    Par contre je n'ai pas compris la concaténation dans une variable temporaire

    pourrais tu me donné un exemple stp?

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 103
    Points : 92
    Points
    92
    Par défaut
    L'exemple est dans mon mail précédent : toutes les valeurs prises par les checkbox seront ajoutées derrière "check=" sans séparateur.

  8. #8
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    369
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 369
    Points : 61
    Points
    61
    Par défaut
    Voila je me suis inspiré de ton aide plus mon ancienne fonction ca a l'air de fonctionné mais ca n'ouvre pas le popup voyez vou pourquoi svp?

    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
     
    function ouvreFenetreAjouter() { 
    var valeurCheckDansLien="Formulaire_action.php?"; 
    TabChecks=document.getElementsByName('checkbox1'); 
    TCL=TabChecks.length; 
    var j = 0; 
    for( var i=0;i<TCL;i++) { // ici on parcourre les elements pour savoir lequel est coché 
    if(TabChecks[i].checked) { 
    if ( j == 0 ) { 
    valeurCheckDansLien += "checkbox" + j + "=" + TabChecks[i].value; 
    j++; 
    } else { 
    valeurCheckDansLien += "&checkbox" + j + "=" + TabChecks[i].value; 
    j++; 
    } 
    } 
    } 
    if( j > 0){// si un radio est coché 
    //window.open(valeurCheckDansLien, "", config='width=600, height=600, resizable=no, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no'); 
    alert ('valeur : ' + valeurCheckDansLien ); 
    } else { 
    alert("pas de d'arrêts chaînes selectionné !"); 
    } 
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='checkbox' name='checkbox1' value='" . $NUM . "' />

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 103
    Points : 92
    Points
    92
    Par défaut
    C'est la méthode window.open qui ouvre une popup.
    Dans ton exemple, l'instruction est commentée.

    Le alert (ouverture d'une fenetre d'avertissement) te permet de debugger le Javascript ... je pense qu'il te faudra le supprimer à terme.

  10. #10
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    369
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 369
    Points : 61
    Points
    61
    Par défaut
    effectivement ca fonctionne mieux comme ca merci bcp pour votre aide

    merciiiiiiiii

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 103
    Points : 92
    Points
    92
    Par défaut
    Ravie de t'avoir aidé.
    Pense à mettre "résolu".

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

Discussions similaires

  1. Gestion d'un checkbox pour griser ou non un bouton javascript/php
    Par LiliValerie dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 31/01/2013, 09h15
  2. Réponses: 17
    Dernier message: 29/04/2008, 21h53
  3. pb checkbox javascript php
    Par landreaubis dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/02/2008, 14h13
  4. Javascript + PHP => checkbox et tableau incompatibles
    Par Matth_S dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/02/2006, 15h38
  5. [Javascript / PHP] Tooltip sur une ligne php
    Par tchoukapi dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/10/2005, 17h12

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