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 :

Ajouter des checkbox selon un certains nombre de champs


Sujet :

ASP

  1. #21
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 71
    Points : 26
    Points
    26
    Par défaut
    Merci pour ta reponse,

    J'utilise la methode POST donc le form convient parfaitement...

  2. #22
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    633
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 633
    Points : 721
    Points
    721
    Par défaut
    si c'est résolu pense à cliquer sur

  3. #23
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 71
    Points : 26
    Points
    26
    Par défaut
    Non toujours pas résolu l'update !!! :s

  4. #24
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    633
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 633
    Points : 721
    Points
    721
    Par défaut
    ok au temps pour moi!
    pardonnes mon empressement
    Si t'as des soucis n'hésite pas on est là pour s'entre-aider

  5. #25
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 71
    Points : 26
    Points
    26
    Par défaut
    Encore et toujours des soucis...

    J'aimerais effectuéer l'update sur une autre page mais apparement je m'y prends mal ...( encore une fois ) ..j'ai essayé ainsi mais sans success :

    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
    Dim Sel,IDFormation
    Sel=Request.Form("Sel")
    IDFormation=Request.Form("IDFormation")
     
    <%'-------création de la connection et du recordset-----------
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Mode=3
    Conn.Open "DBEmploye"
    Set Rs = Server.CreateObject("ADODB.Recordset")
    Set RsForm = Server.CreateObject("ADODB.Recordset")
    Rs.Open "Select * from tblEncodage",Conn , adCmdTable
     
     
    %>
     
     
    <%
    Do while not Rsform.EOF
        Rs.Addnew 
        Rs("IDMatricule")= ("Sel")
        Rs("IDFormation")=RsForm("IDFormation") 
        Rs.Update 
    	RsForm.MoveNext
    loop
    'Wend
     
    %>
     
     
    <%'-------fermeture de la connection et du recordset----------
    Set Rs = Nothing
    Conn.Close
    Set Conn = Nothing%>
    Sel est l'IDMatricule de la personne

    En fait je ne sais pas si je recupere bien les donnée,....
    faut il reeouvrir un nouveau recordset RsForm utilisé auparavant ?

    J'ai un message d'erreur EOF is true.........donc il ne fait pas la boucle d'update ??

    HELP HELP !! y a encore bcp de trucs qui m'echappe en asp ....

  6. #26
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    633
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 633
    Points : 721
    Points
    721
    Par défaut
    1) pour savoir si tu récupères bien les données
    fais un response.write Request.Form("monchamp")
    2) Faut -il réouvrir RsForm oui
    3)Ton RsForm n'est pas ouvert donc tu ne passeras jamais dans ta boucle
    4) euh réexpliques ce que tu cherches a faire je me souviens plus (C'est vendredi )

  7. #27
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 71
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par Pymm
    1) pour savoir si tu récupères bien les données
    fais un response.write Request.Form("monchamp")
    2) Faut -il réouvrir RsForm oui
    3)Ton RsForm n'est pas ouvert donc tu ne passeras jamais dans ta boucle
    4) euh réexpliques ce que tu cherches a faire je me souviens plus (C'est vendredi )
    En fait ce que j'aimerais c'est inscirre dans ma tableEncodage ( RsForm) les case qui ont ete cochez par l'utilisateur, Mais je n'arrive pas a recuperer les valeurs des cases a cocher et de faire l'update dans ma table !!

    les checkbox doivent avoir une certaine valeur et non pas un "non/oui"

    Le code que tu m'avait donné etait bon mais je n'arrive pas a l'inserer a la bonne place .....

  8. #28
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    633
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 633
    Points : 721
    Points
    721
    Par défaut
    ta checkbox est de ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" nom="machkbx" id="machkbx" value="OK">
    à la validation du formulaire si elle a été cochée :
    ton request.form("machkbx")="OK" sinon request.form("machkbx")=""

    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
    Dim Sel,IDFormation
    Sel=Request.Form("Sel")
    IDFormation=Request.Form("IDFormation")
     
    '-------création de la connection et du recordset-----------
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Mode=3
    Conn.Open "DBEmploye"
    Set Rs = Server.CreateObject("ADODB.Recordset")
    Set RsForm = Server.CreateObject("ADODB.Recordset")
    Rs.Open "Select * from tblEncodage",Conn , adCmdTable
    RsForm.Open "Select * from tblEncodage",Conn , adCmdTable
     
    Do while not Rsform.EOF
        If Request.Form(RsForm("IdFormation"))="OK"
           Rs.Addnew
           Rs("IDMatricule")= ("Sel")
           Rs("IDFormation")=RsForm("IDFormation")
           Rs.Update
       End If
       RsForm.MoveNext
    loop
     
    '-------fermeture de la connection et du recordset----------
    Rs.Close
    Set Rs = Nothing
    RsForm.Close
    Set RsForm=Nothing
    Conn.Close
    Set Conn = Nothing
    Conseil : dans cette partie tu n'as pas besoin des <% et %> car tu n'as que de l'ASP. Ils ne s'utilisent que lors du passage de l'ASP vers le HTML ou le javascript
    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ...
    While Not Rs.EOF
    ...
    Wend 
     
    %>
    <script language="javascript">
    ...
    </script>
    <%

  9. #29
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 71
    Points : 26
    Points
    26
    Par défaut
    lorsque j'exécute j'ai un message d'erreur suivant :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ADODB.Recordset (0x800A0CB3)
    Current Recordset does not support updating. This may be a limitation of the provider, or of the selected locktype.
    /BDF/traitement_form.asp, line 21
    Ma ligne 21 est la suivant Rs.Add

    J'ai bien tout les droits, j'ai essayé dans la base access directemente et ca marche !!

    Je pense qu'il y a un problème avec le recordset !!
    Sur la page du formulaire j'avais le RsForm suivant:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    RsForm.Open "Select * from tblEncodage WHERE IDMatricule =" &Sel , ConnTable
    RsTable.Open "Select * from tblFormation WHERE IDFormation <20" , ConnTable
    RsAdd.Open " Select * from tblEncodage", ConnTable%>
    Dois je utiliser les meme sur cette page ??

  10. #30
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    633
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 633
    Points : 721
    Points
    721
    Par défaut
    testes en changeant ces lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'Conn.Mode=3 //mets cette ligne en commentaire
     
    Rs.Open "Select * from tblEncodage",Conn , 1,3
    RsForm.Open "Select * from tblEncodage",Conn , 1,3

  11. #31
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 71
    Points : 26
    Points
    26
    Par défaut
    Ca a l'air de fonctionner mais il me met une vingtaine de fois le matricule dans ma table !!! j'ai donc du enlever les cle primaire, index.....

    Problème dans la boucle a mon avis !!!

  12. #32
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 71
    Points : 26
    Points
    26
    Par défaut
    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
     
     
    Dim Sel,IDFormation
    Sel=Request.Form("Sel")
    IDFormation=Request.Form("IDFormation")
     
     
    IDFormation=CINT(IDFormation)
    '-------création de la connection et du recordset-----------
    Set Conn = Server.CreateObject("ADODB.Connection")
    'Conn.Mode=3
    Conn.Open "DBEmploye"
    Set Rs = Server.CreateObject("ADODB.Recordset")
    Set RsForm = Server.CreateObject("ADODB.Recordset")
    Rs.Open "Select * from tblEncodage",Conn ,1,3
    RsForm.Open "Select * from tblFormation ",Conn ,1,3 
     
     
    Do while not Rsform.EOF 
        If Request.Form(RsForm("IdFormation"))="OK" then
           Rs.Addnew 
           Rs("IDMatricule")= (Sel) 
           Rs("IDFormation")=RsForm("IDFormation") 
           Rs.Update 
       End If 
       RsForm.MoveNext 
    loop
    L'insertion se fait dans ma base de donnée access mais j'ai du enlever les cle primaire. Le problème est que si la case est deja coché, il essaye de me la rajouter dans la base...comment faire pour tester si les valeurs se trouvent deja dans la base ??

    j'ai aussi un message d'erreur : Request object, ASP 0105 (0x80004005)
    An array index is out of range.
    /BDF/traitement_form.asp, line 23

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    line23. If Request.Form(RsForm("IdFormation"))="OK" then

    J'en finirai donc jamais avec cette update :

  13. #33
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    633
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 633
    Points : 721
    Points
    721
    Par défaut
    c'est une mise à jour ou un création que tu fais ?

  14. #34
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 71
    Points : 26
    Points
    26
    Par défaut
    En fait j'aimerais faire une création lorsque la formation n'a pas eté effectué et une mise a jour pour sélectionner ou déselectionner une formation donc en fait c'est un melange des 2 ...

    j'aimerais qu'il ne me crée que les formations qui n'ont pas encore ete coché....mais ici lorsque je fais " valider " il me crée automatiquement toute les formations qui ont ete coché meme celles qui ont ete coché auparavant donc ca crée un probleme de redondance...:s

  15. #35
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 151
    Points : 116
    Points
    116
    Par défaut
    tu peux créer un recordset sur une simple requete de ta base, tu le parcours en le comparant à tes formations cochées, si ça existe MAJ, si ça n'existe pas INSERT

    genre :

    while not rs.EOF

    maval = rs("formation")
    if maval = maformationcheckee then
    sql = update...
    else
    sql = insert

    en gros c'est l'idée...

  16. #36
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 71
    Points : 26
    Points
    26
    Par défaut
    ce que j'aimerais c'est de comparer si ma valeur checked est deja dans ma table Encodage !!

    Puisque mes case a cocher se traduise en Numerique dans ma table !!

    du style

    If Request.Form RsForm("IDFormation")="OK" And RsForm("IDFormation") != Rs("IDFormation") ..........ou Rs est ma table Encodage

  17. #37
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    633
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 633
    Points : 721
    Points
    721
    Par défaut
    Dans cette situation, je supprime tous les enregistrements de la personne et j'ajoute ensuite comme ça pas de problème de doublons

    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
    Dim Sel,IDFormation
    Sel=Request.Form("Sel")
    IDFormation=Request.Form("IDFormation")
     
     
    IDFormation=CINT(IDFormation)
    '-------création de la connection et du recordset-----------
    Set Conn = Server.CreateObject("ADODB.Connection")
    'Conn.Mode=3
    Conn.Open "DBEmploye"
    Set Rs = Server.CreateObject("ADODB.Recordset")
    Set RsForm = Server.CreateObject("ADODB.Recordset")
     
    Rs.Open "Delete * from tblEncodage where IDMatricule=" & Sel & ";",Conn ,1,3
     
    Rs.Open "Select * from tblEncodage;",Conn ,1,3
    RsForm.Open "Select * from tblFormation ",Conn ,1,3
     
     
    Do while not Rsform.EOF
        If Request.Form(RsForm("IdFormation"))="OK" then
           Rs.Addnew
           Rs("IDMatricule")= Sel
           Rs("IDFormation")=RsForm("IDFormation")
           Rs.Update
       End If
       RsForm.MoveNext
    loop

  18. #38
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Citation Envoyé par Pymm
    Dans cette situation, je supprime tous les enregistrements de la personne et j'ajoute ensuite comme ça pas de problème de doublons
    Une autre façon de faire :
    Désactiver le gestionnaire d'erreurs (on error resume next)
    Exécuter une requête INSERT
    Si err > 0 => requête UPDATE

  19. #39
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 71
    Points : 26
    Points
    26
    Par défaut
    Merci l'update marche bien mise a part que j'ai toujours un message d'erreur ....array index is out of range

    Maintenant j'aimerais y ajouter la date aussi mais j'ai un doute concernant la récupération du name de l'input box ...j'explique :

    dans mon formulaire j'ai l'input box de type texte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Response.Write "    <td>" & chr(10) 
          Response.Write "    <input id=""date_" & RsTable("IDFormation")  & """ type=""text"" name=""date_" & RsTable("IDFormation")& """ value="""">" & chr(10) 
     
          Response.Write "    </td>" & chr(10)
    Comment je fais pour récuper ce type de nom ??

    DDate = "date_" Request.form("IDFormation") ??????????

    De + quand j'essaye d'updater la date et que je coche les cases 1,2,3,4,5

    i me coche les cases 1,3,5,7 :

  20. #40
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    633
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 633
    Points : 721
    Points
    721
    Par défaut
    bon on va tout d'abord s'occuper de ton problème d'indice :
    indique moi la ligne incriminée

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Filtrer des données selon un certain critère
    Par Sylvain744 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/03/2015, 20h51
  2. Réponses: 2
    Dernier message: 08/07/2014, 09h24
  3. Ajouter des Checkbox dans un TlistView
    Par ATTIA dans le forum Composants VCL
    Réponses: 10
    Dernier message: 01/10/2009, 18h41
  4. Cocher des checkboxes selon le choix utilisateurs
    Par Altaria dans le forum SharePoint
    Réponses: 5
    Dernier message: 30/07/2009, 14h00
  5. [STringGrid] Comment ajouter des CheckBox ?
    Par arkhamon dans le forum Composants VCL
    Réponses: 1
    Dernier message: 23/01/2008, 11h03

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