P.O.K Posté 27 Novembre 2008 Posté 27 Novembre 2008 (modifié) Bonjour, je vais essayer d'être le plus claire possible pour vous exposer mon problème. Je suis en train de créer une page qui affiche une liste de personnes (liste d'élèves dans une classe). Pour cela, je vais chercher les noms des élèves qui sont dans une base de données. A côté de ces noms, j'ai mis un checkbox qui sert à contrôler les présences. En effet, lorsque l'élève est là, je le coque, s'il n'est pas la, je ne le coche pas (ou l'inverse on verra ;-)) Pour que ce procédé fonctionne, j'ai attribué comme value au checkbox le numéro de l'élève auquel il appartient. Ce numéro sera donc enregistrer dans une table. Pour chaque numéro (et donc pour chaque élève) une nouvelle ligne dans la base de données va se créer à chaque fois que le checkbox sera coché. Mais voilà, le problème est que lorsque je coche plusieurs checkbox, ceux-ci sont considéré comme la même "valeur" Exemple : Si je coche un seul élève, j'aurai comme résultat "334". Si je coche plusieurs élèves j'aurai "334, 335, 336, ...". Je voudrais que si je coche plusieurs élèves j'ai "334" "335" Voici mon code : <html><head><title></title><link href="style.css" rel="stylesheet" type="text/css"></head><body><% If session("access")="ok" then%><table cellpadding="0" cellspacing="0" border="0" id="mainTable"> <tr> <td id="header-left"> </td> <td id="header"> <h1>aaa</h1> </td> <td id="header-right"> </td> </tr> <tr> <td id="conteneurcontenu1-left"> </td> <td id="conteneurcontenu1"> <p class="cont-titre"> Bienvenue sur le serveur d'exercices du cours Webmaster<br> </p> <br> <p class="cont"> <form method="get" name="MyForm"> <p class="cont">Choisissez une classe : <%dim conn, ConnString, rs, nocours1, annee1%> <%set conn = Server.CreateObject("ADODB.Connection") ConnString = "DBQ=" & Server.MapPath("BD/etudiant.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25" conn.Open connString SQL = "select * from cours order by NomCours asc, Annee desc" set rs = conn.execute (SQL)%> <% nocours1 = request.querystring("classe") if nocours1 = "" then nocours1 = rs("nocours") end if %> <select name="classe" onChange="MyForm.submit()"> <%Do while not RS.EOF%> <option value="<%= rs("NoCours")%>" <%if int(nocours1) =int(rs("nocours")) then %> selected <% end if%>><%= rs("NomCours")%> <%= rs("Annee")%></option> <%= rs("annee")%> <% RS.MoveNext%> <%loop%> <% RS.Close %> <% conn.Close %> <% Set conn=nothing %> </select> </p> </form> </p> </td> <td id="conteneurcontenu1-right"> </td> </tr> <tr> <td> </td> <td id="conteneurcontenu2"> <table cellpadding="5" cellspacing="0" border="0" width="101.5%"> <tr> <td bgcolor= "#50504f"> </td> <td id="TitleTableAdmin"> Photo </td> <td id="TitleTableAdmin"> Etudiant </td> <td id="TitleTableAdmin"> Présence </td> </tr> </table> <%set conn = Server.CreateObject("ADODB.Connection") ConnString = "DBQ=" & Server.MapPath("BD/etudiant.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25" conn.Open connString SQL = "select * from etudiant where NoCours=" &nocours1& " order by nom asc" set rs = conn.execute (SQL)%> <% noetudiant = rs("noetudiant") %> <table cellpadding="5" cellspacing="0" border="0" width="101.5%"> <tr> <form name="FormAbsence" action="absence.asp" method="post"> <% compteur = 0 do while rs.eof = false If session("access")="ok" then compteur = compteur + 1 if compteur mod 2 = 0 then couleur = "white" else couleur = "#c0c0c0" end if%> <td bgcolor="<%= couleur %>"> </td> <td id="TableAdmin" bgcolor="<%= couleur %>"> <%if rs("image")<>"" then%> <img width="100" height="133.33" src="PhotoSTDx/<%=rs("image")%>"> <%else%> <img width="100" height="133.33" src="PhotoSTDx/07/DSCN4501.JPG"> <%end if%> </td> <td id="TableAdmin" bgcolor="<%= couleur %>"> <a href="etudiant.asp?NoEtudiant=<%=rs("NoEtudiant")%>"><%=rs("prenom")%> <%=rs("Nom")%></a> </td> <td id="TableAdmin" bgcolor="<%= couleur %>"> <input type="checkbox" name="absence" value="<%= rs("NoEtudiant") %>"> </td> <%end if%> </tr> <% RS.MoveNext %> <%loop%> <input type="submit"> </form> </table> <% RS.Close %> <% conn.Close %> <% Set conn=nothing %> </td> <td> </td> </tr> <tr> <td> </td> <td align="center"> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> </tr></table><%end if %></body></html> J'espère avoir été assez clair et que vous vous y retrouverez dans mon code... merci Modifié 17 Décembre 2008 par Patrick Merci d'utiliser la balise [codebox] pour y placer ton code source quand celui-ci est long
nalrem Posté 27 Novembre 2008 Posté 27 Novembre 2008 Hello Utilise un tableau pour récupérer tes données. Transforme <input type="checkbox" name="absence" value="<%= rs("NoEtudiant") %>"> en <input type="checkbox" name="absence[]" value="<%= rs("NoEtudiant") %>"> Et tu devrais avoir le tableau absence qui se crée en POST.
P.O.K Posté 28 Novembre 2008 Auteur Posté 28 Novembre 2008 Bonjour, merci pour votre réponse. Malheureusement, lorsque je rajoute les "[]", cela ne change rien... Voici la page qui récupère les données, cela peut peut-être vous aider : <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head> <title></title></head><body><%absence = request.form("absence[]")%><%set RS = Server.CreateObject("ADODB.recordset")ConnString = "DBQ=" & Server.MapPath("BD/etudiant.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25"rs.open "absence", ConnString, 2, 3, 2rs.addnew()rs("NoEtudiant")= absencers.updaters.close%></body></html>
P.O.K Posté 16 Décembre 2008 Auteur Posté 16 Décembre 2008 (modifié) J'ai laissé tomber cette application en fin de compte.. Merci quand même d'avoir essayé Modifié 16 Décembre 2008 par P.O.K
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant