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

ASP Discussion :

checkbox dans un tableau dynamique


Sujet :

ASP

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 11
    Points : 9
    Points
    9
    Par défaut checkbox dans un tableau dynamique
    g un tableau dont les lignes et les colonnes sont construites suite au choix de l'utilisateur dans une page precedente. le user dois cocher des cases dans ce tableau selon son choix ma question c comment recuperer les données au meme temps laisser le tableau tel qu'il est c a d avec les cases cochées déjà
    pour mieux me compredre voilà mon code
    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
    <form name="form1" method="post" action="ajout_x_maj.asp">
    <table >
     
        <tr>
    	<td ></td>
    	        <%for i=0 to ubound (produits)-1%>
          <td >
     
    	  <%response.Write(produits(i,1)&"<br>")%>
     
          </td>
     
          <%next%>
        </tr>
     
    	<%for j=0 to ubound (thact)-1%>
    <tr>
    	  <td >
    	    <%response.write(thact(j,2)&"<br>")%>
                   </td>
     
    <%for i=0 to ubound (produits)-1%>	 
     
     
     
         <td >  <a href="ajout_produit_maj.asp?id_thact=<%=thact(j,0)%>&produits=<%=produits(i,0)%>&id_th=<%=thact(j,1)%>">
     
           <input name="checkbox" type="checkbox" class="btnOK" value="<%=thact(j,0)&"<br>"&produits(i,0)&"<br>"&thact(j,1)%>" >
     
          </a></td> 
     
     
     
     
    <%next%>
     
     
     
    </tr>
     
     
     <%next%>
     
      </table>
     
            <input name="Submit" type="submit" class="tableauVertGrand1" value="valider">
    </form>
    j'ai pas pu recuperer les querystring donc g utilisé le checkbox mais la page ajout_x_maj.asp me donne le resultat suivant
    1198
    2
    651, 1198
    4
    651, 1199
    3
    651 ces sont trois choix pour chaque choix il y a trois valeurs comment recuperer ces derniers (les 3 valeurs exp: 1198 et 2 et 651) chacune à part?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Chaque checkbox doit avoir un nom différent pour que tu puisse récupérer son état.
    Si les noms sont indicés tu peut facilement les récupérer avec:
    request.form("checkbox" & i)
    par exemple, i étant l'indice.

    De plus, sans vouloir t'offenser, je pense que tu n'as pas compris comment utiliser les formulaires en Asp. Je suggère la lecture de tutoriels.

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    j'ai bien lu les tuto
    mais je sais que je m'xprime mal en fait je sais explique du tout
    je reformule donc dans un formulaire html j'ai plusieurs checkbox qui portent le même nom ==>c un formulaire contenant un tableau dynamique où l'utilisateur selon la page precedente peut ajouter plusieurs champs
    pour mieux me comprendre voilà un autre exp d'une autre personne qui n'a pas trouvé de solution
    http://www.developpez.net/forums/arc...p/t-20779.html

  4. #4
    Invité
    Invité(e)
    Par défaut
    Si les checkbox ont le même nom, alors il sera impossible de différencier les valeurs.
    Je en vois pas ce qui t'impose de leur mettre le même nom.
    J'ai fait des tas de pages en asp et en php avec des checkbox en quantité industrielle, en utilisant un "nommage indicé" je n'ai jamais eu de soucis.

  5. #5
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Salut,

    Citation Envoyé par Florian
    Chaque checkbox doit avoir un nom différent pour que tu puisse récupérer son état.
    Pas forcement, si tu as un formulaire comme celui-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <form name="frm" action="result.asp" method="post">
    	<input type="checkbox" name="toto" value="A-1">A-1<br>
    	<input type="checkbox" name="toto" value="A-2">A-2<br>
    	<input type="checkbox" name="toto" value="A-3">A-3<br>
    	<input type="submit" name="Action" value="Envoyer">
    </form>
    Suivant les cases cochées, le formulaire envoie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    toto=A-1&toto=A-2&toto=A-3&Action=Envoyer
    Pour récupérer la valeur des checkbox tu fais simplement un split. Ou bien une boucle du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FOR each name in request.form
    	response.Write(name & " : " & request.Form(name) & "<br>")
    NEXT
    Du coup, tu valorises tes valeurs en mettant par exemple un ID concaténé avec une quantité...

    A+

  6. #6
    Invité
    Invité(e)
    Par défaut
    C'est une solution intéressante, à laquelle je n'avais jamais pensée.
    Néanmoins est-ce bien raisonnable, on risquerait de prendre des habitudes gênantes pour passer en Asp .net

  7. #7
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Crois-tu qu'ASP.NET ne peut pas gérer les checkbox comme ça?
    Je serais étonné. Imagine un site de commandes de pizzas. Si j'ai un formulaire avec le choix des pizzas, j'imagine mal devoir taper dans le code la gestion individuelle des checkbox.

    A+

  8. #8
    Invité
    Invité(e)
    Par défaut
    Des "objets asp checkbox" avec le même id ne sont pas acceptées, j'ai testé avec web developer express. Utiliser des éléments de formulaires non-.Net c'est quand même pas le but

    Je me disais juste que cette méthode, qui doit surement présenter un intérêt par moment, ne me semble pas transposable en .Net. Ceci je n'ai pas a science infuse

    Je mettrais ton nom dans la prochaine mouture de mon tuto asp quand je rajouterais cette façon de gérer les checkbox qui m'avait totalement échappée

  9. #9
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Citation Envoyé par Florian
    Des "objets asp checkbox" avec le même id ne sont pas acceptées
    Par ID effectivement c'est impossible, par contre par nom c'est pas dit (pas testé).
    Citation Envoyé par Florian
    Je mettrais ton nom dans la prochaine mouture de mon tuto asp
    Merci

  10. #10
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    oui on peut recuperer les valeurs d'un checkbox portant le meme nom par exp, on a le form suivant etant donné que actions(i,RS.Fields.Count-1) est un tableau utilisé afin de stocker dedans les champs d'une table de la BD
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form name="form1" method="post" action="x.asp">
    <input name="checkbox" type="checkbox" value="<%=actions(i,0)%>"  >
    </form>
    pour recuperer dans une autre page exp x_maj.asp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    redim t_IdAction(1)
    for j=1 to request.form("checkbox").count
    t_IdAction(j-1)=request.form("checkbox").item(j)
    redim preserve t_IdAction(j)
    next
    et voilà on recupere ce qu'on veut dans un nouveau tableau

  11. #11
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Résolu?

  12. #12
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    je pense que je vais changer de methode je vais pas utiliser les checkbox donc résolu autrement

  13. #13
    Membre à l'essai
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par Immobilis
    Salut,


    Pas forcement, si tu as un formulaire comme celui-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <form name="frm" action="result.asp" method="post">
    	<input type="checkbox" name="toto" value="A-1">A-1<br>
    	<input type="checkbox" name="toto" value="A-2">A-2<br>
    	<input type="checkbox" name="toto" value="A-3">A-3<br>
    	<input type="submit" name="Action" value="Envoyer">
    </form>
    Suivant les cases cochées, le formulaire envoie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    toto=A-1&toto=A-2&toto=A-3&Action=Envoyer
    Pour récupérer la valeur des checkbox tu fais simplement un split. Ou bien une boucle du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FOR each name in request.form
    	response.Write(name & " : " & request.Form(name) & "<br>")
    NEXT
    Du coup, tu valorises tes valeurs en mettant par exemple un ID concaténé avec une quantité...

    A+


    Je reviens sur cette solution que je trouve très élégante mais qui me pose problème justement au niveau des checkboxs

    En prenant comme exemple le formulaire suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <form name="frm" action="result.asp" method="post">
    	<input type="hidden" name="cle" value="cle-1"><input type="checkbox" name="toto" value="A-1">A-1<br>
    	<input type="hidden" name="cle" value="cle-2"><input type="checkbox" name="toto" value="A-2">A-2<br>
    	<input type="hidden" name="cle" value="cle-3"><input type="checkbox" name="toto" value="A-3">A-3<br>
    	<input type="submit" name="Action" value="Envoyer">
    </form>
    Et le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    For i = 1 To Request("cle").Count	
     Response.Write Request("cle")(i) & " " & Request("toto")(i) & "<br />"	
    Next
    Ce code va générer une erreur d'indice si le checkbox est décoché parce qu'il y aura moins de toto de retourné que de cle.

    Comment contourner le problème ?

  14. #14
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Tu mets "cle" dans la valeur de la checkbox.
    A+

  15. #15
    Membre à l'essai
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    Effectivement,

    Il faut mettre cle dans la valeur de la checkbox et faire deux boucles :
    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
     
    For i = 1 To Request("cle").Count
     
     'Traitement...
     
     For j = 1 to Request("toto").Count
      If Request("toto").Item(j) = Request("cle")(i) Then
     
       'C'est coché
       'Traitement...
       Exit For
     
      End If
     Next
     
    Next

  16. #16
    Membre habitué
    Inscrit en
    Mars 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Mars 2003
    Messages : 281
    Points : 187
    Points
    187
    Par défaut
    Citation Envoyé par tatayecorp
    Effectivement,

    Il faut mettre cle dans la valeur de la checkbox et faire deux boucles :
    Dans ce cas qu'elle est la nouvelle syntaxe du formulaire ci-dessous ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <form name="frm" action="result.asp" method="post">
    	<input type="hidden" name="cle" value="cle-1"><input type="checkbox" name="toto" value="A-1">A-1<br>
    	<input type="hidden" name="cle" value="cle-2"><input type="checkbox" name="toto" value="A-2">A-2<br>
    	<input type="hidden" name="cle" value="cle-3"><input type="checkbox" name="toto" value="A-3">A-3<br>
    	<input type="submit" name="Action" value="Envoyer">
    </form>
    C'est bien : ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <form name="frm" action="result.asp" method="post">
    	<input type="hidden" name="cle" value="cle-1"><input type="checkbox" name="toto" value="cle">A-1<br>
    	<input type="hidden" name="cle" value="cle-2"><input type="checkbox" name="toto" value="cle">A-2<br>
    	<input type="hidden" name="cle" value="cle-3"><input type="checkbox" name="toto" value="cle">A-3<br>
    	<input type="submit" name="Action" value="Envoyer">
    </form>
    Peux t'on m'expliquer l'intérêt du hidden collé à la checkbox ?

    Merci

  17. #17
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Euh, je crois qu'on s'est mal compris. Si tu veux passer plus de valeurs, il faut toutes les mettre dans la checkbox. Je dirai donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <form name="frm" action="result.asp" method="post">
    	<input type="checkbox" name="toto" value="cle-1;A-1">A-1<br>
    	<input type="checkbox" name="toto" value="cle-2;A-2">A-2<br>
    	<input type="checkbox" name="toto" value="cle-3;A-3">A-3<br>
    	<input type="submit" name="Action" value="Envoyer">
    </form>
    Et on oublie les "hidden".

    A+

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

Discussions similaires

  1. CheckBoxs dans un tableau dynamique
    Par Viscapon dans le forum JSF
    Réponses: 5
    Dernier message: 08/05/2009, 19h57
  2. [Conception] Recuperer des données dans un tableau dynamique
    Par Tartanjet dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 05/09/2006, 00h28
  3. Réponses: 3
    Dernier message: 12/07/2006, 14h54
  4. [Tableaux] Checkbox dans un tableau
    Par mxmorin dans le forum Langage
    Réponses: 9
    Dernier message: 02/06/2006, 14h35
  5. [VBA-E]Afficher tout dans un tableau dynamique croisé
    Par alex_95 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/03/2006, 13h09

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