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 :

probleme recup valeur de checkboxes


Sujet :

ASP

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 73
    Points : 84
    Points
    84
    Par défaut probleme recup valeur de checkboxes
    bjr,
    voila j'ai unp'tit probleme : J'ai une table qui contient des produits (vetements,...) avec des tailles et des couleurs. Pour créer mes prods, j'ai doonc une table produits (id,nom,taille,couleur_dispo,prix...). J'appelle mes tailles/couleurs à l'aide d'une autre table qui contient ces valeurs (car elles ne sont pas fixes et l'utilisateur peut en ajouter, genre la couleur rouge vif...)
    Si je veux modifier un produit, je l'appelle donc avec son ID (depuis la table produit) et j'appele les tailles/couleurs depuis ma table couleur-taille. Le probleme c'est que je n'arrive pas à obtenir les bonnes valeurs pour ces couleurs tailles ////
    Je vous mets un bout de 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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
     
    <%
    session.LCID=&H040c
    Response.Buffer=True
    'on error resume next
    if session("pseudo") = "" and session("pass") = "" then response.redirect("index.asp")
    Set Connection = Server.createObject ("ADODB.Connection")
    Connection.Open "dsn=sqlads;uid=yyyyyy;password=xxxxxxx"
     
    ......
    tous les request 
    ......
     
    SQL_categ = "SELECT * FROM categorie order by nomcateg asc"
    SET catego = Connection.execute(SQL_categ)
     
    SQL_taille_geslain = "SELECT * FROM couleurtaillegeslain where type0 = 'taille'"
    SET tailledeb = Connection.execute(SQL_taille_geslain)
     
    SQL_couleur_geslain = "SELECT * FROM couleurtaillegeslain where type0 = 'couleur'"
    SET couleurdeb = Connection.execute(SQL_couleur_geslain)
     
    select case action
     
    case ""
    SQL_liste = "SELECT * FROM produit order by "&tri&" "&ord&""
    SET liste = Connection.execute(SQL_liste)
     
    case "del"
    if ok = 1 then
    req_del = "DELETE from produit where id="&ID
    Set RS1 = connection.execute(req_del)
    Set RS1=Nothing
     
    dim fso
    set fso = Server.CreateObject("Scripting.FileSystemObject")
    dir = Server.MapPath("/geslain/images/product/")
     
    if fso.folderexists (dir &"\"& ID) then
    fso.deletefolder (dir &"\"& ID)
    end if
     
    response.redirect("produit.asp")
    end if
     
    case "modif"
    SQM = "SELECT * FROM produit where id="&ID
    SET affiche = Connection.execute(SQM)
     
    ant_coul = affiche("couleur")
    ant_taille = affiche("taille")
    ant_couleur = replace(ant_couleur,",",";")
    ant_taille = replace(ant_taille,",",";")
     
    Dim tabcoul,tabtaille
    tabcoul=Split(ant_couleur,";")
    tabtaille=Split(ant_taille,";")
    nbcoul = ubound(tabcoul)
    nbtaille = ubound(tabtaille)
     
    if bouton = "modif" then
     
    if nomprod <> "" and nomprodgb <> "" and prix <> "" and categorie <> "" then
    REQUPD = "UPDATE produit SET refprod='"&replace(trim(refprod),"'","''")&"',nomprod='"&replace(trim(nomprod),"'","''")&"' ,nomprodgb='"&replace(trim(nomprodgb),"'","''")&"', descriptif='"&replace(trim(descriptif),"'","''")&"',descriptifgb='"&replace(trim(descriptifgb),"'","''")&"' ,categorie='"&replace(trim(categorie),"'","''")&"',prix='"&replace(trim(prix),"'","''")&"', prixclub='"&replace(trim(prixclub),"'","''")&"', promo='"&replace(trim(promo),"'","''")&"' WHERE id="&ID
    	SET RS = connection.execute(REQUPD)
    	SET RS = Nothing
    response.redirect("produit.asp")
    else
    message="<font color=red>Des champs n'ont pas t remplis !!! Vrifiez votre saisie !</font><br>Vrifiez les champs <b>Nom produit (Fr et Gb)</b> et <b>prix</b> et <b>catgorie</b>."
    end if 
    end if
     
     
    end select
    %>
    <html>
    <head>
    </head>
    <body bgcolor=#333333>
    <center><img src="../images/logo.png"><br>
    <%=message%>
    <% select case action %>
    <% case "modif" %>
    <table>
    	<tr>
    		<td align="center"><h2>Modification d'un produit 6-0</h2></td>
    	</tr>
    	<form action="#" method="post">
    	<tr>
    		<td align="right" valign="middle">
    		<% if affiche("photo") <> "" then %><a href="image_prod.asp?ID=<%=affiche("id")%>&img=<%=affiche("photo")%>">Modifier cette image</a><br><a href="?ID=<%=affiche("id")%>&action=modif&actimg=delimg&img=<%=affiche("photo")%>">Supprimer cette image</a></td>
    		<td><img src="../images/product/<%=affiche("id")%>/petit_<%=affiche("photo")%>" border="1" width="50" height="50">
    		<% else %>
    		<a href="image_prod.asp?dest=liens&ID=<%=affiche("id")%>">Ajouter une image pour illustrer ce produit</a>
    		<% end if %>
    		</td>
    	</tr>
    	<tr>
    		<td valign="top" align="left" colspan="2">
    		<table border=0>
    	<tr><td>
    		<% rem affichage des couleurs/ %>
    		<% do while not couleurdeb.EOF
    		var = "<input type=checkbox name='couleur' value="& couleurdeb("nom") 
    			For i = 0 to nbcoul 
    		 		if couleurdeb("nom") = tabcoul(i) then var = var & " Checked" 
    		 	next
    		var = var & ">"&couleurdeb("nom")
    		response.write var&"<br>"
    		couleurdeb.movenext
    		loop
    		couleurdeb.close
    		Set couleurdeb = nothing %><br><br>
    		</td>
    		<td>
    		<% rem affichage des tailles %>
    		<% do while not tailledeb.EOF
    		response.write "<input type=checkbox name='taille' value="& tailledeb("nom") &">"&tailledeb("nom")&"<br>"
    		tailledeb.movenext
    		loop
    		tailledeb.close
    		Set tailledeb = nothing %><br><br>
    		</td>
    		</tr>
    	</form>
    </table>
     
     
    <% end select %>
    Déja, est ce que vous y comprenez quelquechose :

  2. #2
    Membre averti Avatar de Crazyblinkgirl
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 341
    Points : 344
    Points
    344
    Par défaut
    Bonjour,

    J'ai regardé rapidement ton code, quel est ton problème exactement? Tu affiches ce que tu récupères?

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 73
    Points : 84
    Points
    84
    Par défaut
    salut,
    ben en fait elles s'affichent les cases mais je n'arrive pas à obtenir les cases "cochées" : genre si j'ai un prod en couleur rouge et vert, eh bé il me coche une seule case, la dernière...(qd ca marche en +)
    Impossible de faire afficher ca correctement/
    Sinon peut etre as tu une autre methode pour gérer ca ?
    En tous cas merci!

    ++

  4. #4
    Membre averti Avatar de Crazyblinkgirl
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 341
    Points : 344
    Points
    344
    Par défaut
    J'espère que cela pourra t'aider :

    J'utilise les checkbox de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" name="check" value=" &rs("...")&" />
    Récupération des valeurs cochées :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     For each item in Request.Form  'parcours des checkbox 
                   If item = "check" Then  
                     checkId = Request.Form(item)   'on récupère sa valeur
                   end if
              next
    Il te renvoie les valeurs des checkbox cochées, chacune étant séparée par des ",", il suffit après de les récupérer via la fonction split par exemple.

    Bon courage!

  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
    Citation Envoyé par Crazyblinkgirl
    Récupération des valeurs cochées :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     For each item in Request.Form  'parcours des checkbox 
                   If item = "check" Then  
                     checkId = Request.Form(item)   'on récupère sa valeur
                   end if
              next
    Ben un simple te donne le résultat. Je vois pas l'intérêt du "for each ..." dans ce cas.
    Split s'utilise pour mettre les cases cochées dans un tableau quand il y a plusieurs cases à cocher qui ont le mm "name".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim myArray, i
    myArray = split(request.form("mycheckbox"),", ")
    FOR i = 0 to UBOUND(myArray)
         response.write(myArray(i) & "<br>")
    NEXT
    A+

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 73
    Points : 84
    Points
    84
    Par défaut
    salut et merci de votre aide,
    mais seulement je me suis mal exprimé.
    En fait mon problème se pose après avoir inséré les données concernant mon produit dans la base. Quand je veux le modifier, j'appelle mes données depuis la table produit. Mes champs taille et couleurs (table produit), gardent les données sous forme d'un champ textestyle pour les tailles : 'S,L,XL' apres j'utilise effectivement la fonction SPLIT pour séparer mes données et faire apparaitre mes checkboxes.
    En fait le prob est la : Comment comparer les couleurs/taille qui sont ds ma table produit avec celles qui sont dans la table couleur-taille ? Comment "checker" celles qui sont vraiment dispo ?
    Suis-je plus clair ?

    merci bcp en tt cas

    ++

  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
    Sais-tu créer des vues sous ton gestionnaire de BD?

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 73
    Points : 84
    Points
    84
    Par défaut
    re,
    euh non je vois pas trop ce que c'est ///

  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
    Ca te permet de créer des "tables" virtuelles qui rassemble des données issues de pp tables.
    Peux-tu te rendre sur le forum SQL server ou Access pour avoir plus d'infos?
    Dslé...

    Merci

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 73
    Points : 84
    Points
    84
    Par défaut
    yo,
    merci pour l'info

    ++

  11. #11
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2003
    Messages : 353
    Points : 361
    Points
    361
    Par défaut
    Citation Envoyé par Crazyblinkgirl
    J'espère que cela pourra t'aider :

    J'utilise les checkbox de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" name="check" value=" &rs("...")&" />
    Récupération des valeurs cochées :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     For each item in Request.Form  'parcours des checkbox 
                   If item = "check" Then  
                     checkId = Request.Form(item)   'on récupère sa valeur
                   end if
              next
    Il te renvoie les valeurs des checkbox cochées, chacune étant séparée par des ",", il suffit après de les récupérer via la fonction split par exemple.

    Bon courage!
    C'est exatement ce que je cherchais.
    Toutefois, comment fait-on si on a plusieurs formulaires (2) sur la meme page ?
    Peut on faire référence à un formulaire par son nom ?

    Edit: en testant, on est pas obligé de le nommer, on utilise juste le submit du formulaire pour le valider.
    Toutefois, si à la place d'un bouton, on veut mettre une image <INPUT TYPE="IMAGE"> à la place du bouton, peut on toujours valider le fomulaire?

    Et aussi, peut t-on récupérer le type d'un champs dans un formulaire ?

  12. #12
    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 Promesses
    Toutefois, comment fait-on si on a plusieurs formulaires (2) sur la meme page ?
    Il me semble bien qu'un seul formulaire peut etre soumis à la fois. Basiquement, la validation d'un formulaire est provoqué par l'action sur un bouton, ou un code javascript. L'action déclarée dans les propriétés du formulaire indique la destination des données envoyées et l'adresse de la nouvelle page.
    Ce serait un peu comme créer un lien hypertexte qui envoi vers deux pages différentes.
    2 formulaires peuvent exister sur une page mais un seul sera validé.
    Du coup, cette question :
    Citation Envoyé par Promesses
    Peut on faire référence à un formulaire par son nom ?
    ne se pose pas.
    Citation Envoyé par Promesses
    Et aussi, peut t-on récupérer le type d'un champs dans un formulaire ?
    En asp les données postées sont de type "string". Je ne crois pas qu'on puisse récupérer le type. En .NET oui, mais...
    A+

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

Discussions similaires

  1. [checkbox] Récupération des valeurs de checkbox
    Par chng001 dans le forum Struts 1
    Réponses: 13
    Dernier message: 07/09/2009, 20h31
  2. récupérer la valeur de checkbox
    Par nick774 dans le forum ASP
    Réponses: 3
    Dernier message: 09/03/2005, 18h44
  3. Probleme : comment mettre un checkbox innaccessible ?
    Par angelevil dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 25/02/2005, 19h13
  4. [Débutant][JSP]Récupération valeur de checkbox
    Par Crazyblinkgirl dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 01/09/2004, 09h16

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