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 :

Boucle For each


Sujet :

ASP

  1. #1
    Membre actif Avatar de roots_man
    Inscrit en
    Août 2004
    Messages
    328
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 328
    Points : 282
    Points
    282
    Par défaut Boucle For each
    Salut alors voila je vous expose mon problème. J'ai plusieurs zone de texte et j'aimerais les insérer avec un seul bouton. afficher 10 * 3 zone de texte :
    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
                  <form method="post" action="">
                    <table width="680" border="0" class="texte">
                        <tr> 
                        <td> 
                          <b>Heure</b>
                        </td>
                        <td> 
                          <b>Lieu</b>
                        </td>
                        <td> 
                          <b>Description</b>
                        </td>
                      </tr>
    				  <%For i = 1 to 10%>
    				  <tr> 
                        <td> 
                          <input type="text" name="heure" size="10">
                        </td>
                        <td> 
                          <input type="text" name="lieu" size="25">
                        </td>
                        <td> 
                          <input type="text" name="desc" size="50">
                        </td>
                      </tr>
    				  <%Next%>
                      <tr> 
                        <td colspan="3"> 
                          <input type="submit" name="doajout" value="Envoyer le programme">
                        </td>
                      </tr>
                    </table>
                  </form>
    Ensuite pour insérer je fait un for each comme ca.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    	for each prog in request.form("heure")
    		if prog <> "" Then
    			set rst = Server.CreateObject("ADODB.RecordSet")
    			rst.open "Programme", Connect, 2, 3, 2
    			rst.addnew
    			rst("Heure")= prog
    			'rst("Lieu")= request.form("lieu")
    			'rst("Description")= request.form("desc")
    			rst.update
    			rst.close
    		End if
    	Next
    La c'est tout bon ca m'insère tout les infos du champs "heure" Mais comment faire pour que ca m'insère aussi le lieu et la description ??

    Je sais pas si vous avez compris ce que je voulais.. !?!?

    Merci d'avance
    powder skiing is not a crime

  2. #2
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    J'ai jamais fait ça! Je pense que ça devrait fonctionner comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for each prog in request.form("descript") 
    ...
    for each prog in request.form("lieu")
    ...
    car la variable lieu ne correspond à rien dans ton code et comme tu as plusieurs champs nommés de la même façon tu ne peux pas non plus utiliser request.form("descript"). Le request n'est pas parcouru.

    Sinon, si je me souviens bien, quand tu as plusieurs champs du même nom on récupère les valeurs séparées par des ",". L'idée serait donc de spliter les request.form à la virgule dans 3 tableaux différents de la même taille. Et ensuite faire une boucle for jusqu'à Ubound(un_tab).
    Les Cours et tutoriels JavaScript
    Penser à la recherche et au bouton

  3. #3
    Membre régulier Avatar de EssaiEncore
    Inscrit en
    Janvier 2005
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 144
    Points : 74
    Points
    74
    Par défaut
    En fait il ne passe que dans 1 colonne de ton tableau? si j'ai bien compris !!!

  4. #4
    Membre actif Avatar de roots_man
    Inscrit en
    Août 2004
    Messages
    328
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 328
    Points : 282
    Points
    282
    Par défaut
    ouais j'ai oublier de changer le lieu il est vrai ki correspond a rien. Mais si t'imbrique les for each ca ne fontcionne pas, ca insert bcp trop d'enregistrements. mé je vais encore réfléchir.. Je vais essayer de splité tout ca

    Merci quand meme
    powder skiing is not a crime

  5. #5
    Membre actif Avatar de roots_man
    Inscrit en
    Août 2004
    Messages
    328
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 328
    Points : 282
    Points
    282
    Par défaut
    ouais il me passe que dans la 1ere parce que je fais le for each sur celle la.. mais apres avec plusieur for each je vois pas trop comment faire !?!?
    powder skiing is not a crime

  6. #6
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    Désolé, je suis feignant. Je ne parlait pas de les imbriquer mais de les faires les uns après les autres. Mais je pense que ma méthode est mieux
    Les Cours et tutoriels JavaScript
    Penser à la recherche et au bouton

  7. #7
    Membre actif Avatar de roots_man
    Inscrit en
    Août 2004
    Messages
    328
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 328
    Points : 282
    Points
    282
    Par défaut
    Bon alors j'ai essayer avec ta méthode. résultat ca m'insère seulement la dernière ligne mais avec les 3 champs rempli !!!

    Voila comment j'ai fait.. si qqn voit une erreur, ca serait coool !
    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
    set rst = Server.CreateObject("ADODB.RecordSet")
    rst.open "Programme", Connect, 2, 3, 2
    rst.addnew
    heure = request.form("heure")
    listeHeure = Split(heure, ", ")
    for i = 0 to UBound(listeHeure)
    	rst("Heure")= listeHeure(i)
    	rst("Annee") = request.querystring("Annee")
    Next
    lieu = request.form("lieu")
    listeLieu = Split(lieu, ", ")
    for j = 0 to UBound(listeLieu)
    	rst("Lieu")= listeLieu(j)
    Next
    desc = request.form("desc")
    listeDesc = Split(desc, ", ")
    for k = 0 to UBound(listeDesc)
    	rst("Description")= listeDesc(k)
    Next
    rst.update
    rst.close
    powder skiing is not a crime

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

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

    Une idée ?
    <%For i = 1 to 10%>
    <tr>
    <td>
    <input type="text" name="heure" size="10">
    </td>
    <td>
    <input type="text" name="lieu" size="25">
    </td>
    <td>
    <input type="text" name="desc" size="50">
    </td>
    </tr>
    <%Next%>
    Si tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
                  <%For i = 1 to 10%> 
                  <tr> 
                        <td> 
                          <input type="text" name="heure<%=i%>" size="10"> 
                        </td> 
                        <td> 
                          <input type="text" name="lieu<%=i%>" size="25"> 
                        </td> 
                        <td> 
                          <input type="text" name="desc<%=i%>" size="50"> 
                        </td> 
                      </tr> 
                  <%Next%>
    tu peux alors les récupérer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <%
    for i = 1 to 10
       Heure = request.form("heure" & cstr(i))
       .....
    next
    %>

  9. #9
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    En effet, il y a une erreur. Je pensais plutôt à insérer le rst.update dans chaque boucle (je suis vraiment trop feignant tu ne peux pas lire dans mes pensées ). Ce que ça fait là c'est que ça fait tourner toutes les boucles jusqu'au Ubound de chaque tableau et ensuite ça met à jour donc tu obtiens ce que tu nous dis.

    Seulement, tu fais un addnew donc je ne sais pas comment ça va réagir. Je suppose que tous tes tableaux ont la même dimension tu peux donc essayer ceci (cettte fois je met le 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
    set rst = Server.CreateObject("ADODB.RecordSet") 
    rst.open "Programme", Connect, 2, 3, 2 
    rst.addnew 
     
    heure = request.form("heure") 
    lieu = request.form("lieu") 
    desc = request.form("desc") 
     
    listeHeure = Split(heure, ", ") 
    listeLieu = Split(lieu, ", ") 
    listeDesc = Split(desc, ", ") 
     
    for i = 0 to UBound(listeHeure) 
       rst("Heure")= listeHeure(i) 
       rst("Annee") = request.querystring("Annee") 
       rst("Lieu")= listeLieu(j) 
       rst("Description")= listeDesc(k) 
       rst.update 
    Next 
     
    rst.close
    Les Cours et tutoriels JavaScript
    Penser à la recherche et au bouton

  10. #10
    Membre actif Avatar de roots_man
    Inscrit en
    Août 2004
    Messages
    328
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 328
    Points : 282
    Points
    282
    Par défaut
    Yeah merci ca marche nickel

    Juste 2-3 truc a changer pour ceux qui serais intéréssé :
    1. Mettre le "rst.addnew" dans la boucle for
    2. Remplacer le j et le k par un i.. mais bon ca franculo_caoulene il a fait du copier coller donc il a pas fait trop attention..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    rst("Lieu")= listeLieu(i) 
    rst("Description")= listeDesc(i)
    Merci beaucoup man !! 8)
    powder skiing is not a crime

  11. #11
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    oui, désolé mais je reste feignant
    Les Cours et tutoriels JavaScript
    Penser à la recherche et au bouton

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

Discussions similaires

  1. Boucle "For Each in " et table
    Par catoucat dans le forum Access
    Réponses: 5
    Dernier message: 19/09/2006, 13h38
  2. boucle for each
    Par jadey dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 30/08/2006, 20h50
  3. [VBA-E]PB sur une boucle for each next
    Par rond24 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 31/07/2006, 15h47
  4. aide vba boucle for each paramétrée en range
    Par gotlieb dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/07/2006, 08h55
  5. [VBA-E] erreur boucle for each
    Par Mut dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/02/2006, 16h38

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