Webmaster Hub: Problème avec un checkbox - Webmaster Hub

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Problème avec un checkbox Noter : -----

#1 L'utilisateur est hors-ligne   P.O.K 

  • Groupe : Actif
  • Messages : 46
  • Inscrit(e) : 18-septembre 08

Posté 27 novembre 2008 - 15:22

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">&nbsp;
		</td>
		<td id="header">
			<h1>aaa</h1>
		</td>
		<td id="header-right">&nbsp;
		</td>
	</tr>
	<tr>
		<td id="conteneurcontenu1-left">&nbsp;
		</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")%>&nbsp;<%= rs("Annee")%></option>
				<%= rs("annee")%>					
				<% RS.MoveNext%>
				<%loop%>
				<% RS.Close %>
				<% conn.Close %>
				<% Set conn=nothing %>
				</select>
		   	</p>
			</form>

			</p>
	   	</td>
		<td id="conteneurcontenu1-right">&nbsp;
		</td>
	</tr>
	<tr>
		<td>&nbsp;
		</td>
		<td id="conteneurcontenu2">
			<table cellpadding="5" cellspacing="0" border="0" width="101.5%">
				<tr>
				 	<td bgcolor= "#50504f">&nbsp;
						
					</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 %>">&nbsp;
				</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"
)%>&nbsp;<%=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>&nbsp;
		</td>
	</tr>
	<tr>
		<td>&nbsp;
		</td>
		<td align="center">
		</td>
		<td>&nbsp;
		</td>
	</tr>
	<tr>
		<td>&nbsp;
		</td>
		<td>&nbsp;
		</td>
		<td>&nbsp;
		</td>
	</tr>
</table>
<%end if %>
</body>
</html>


J'espère avoir été assez clair et que vous vous y retrouverez dans mon code...

merci

Ce message a été modifié par Patrick - 17 décembre 2008 - 13:38.
Raison de l'édition : Merci d'utiliser la balise [codebox] pour y placer ton code source quand celui-ci est long

0

#2 L'utilisateur est hors-ligne   nalrem 

  • Groupe : Hubmaster
  • Messages : 163
  • Inscrit(e) : 22-août 04
  • Société:krinein.com

Posté 27 novembre 2008 - 18:55

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.
Nous, on spoil, et pas qu'un peu, pourtant on aime krinein, le magazine critique et on adore faire nos geeks.
0

#3 L'utilisateur est hors-ligne   P.O.K 

  • Groupe : Actif
  • Messages : 46
  • Inscrit(e) : 18-septembre 08

Posté 28 novembre 2008 - 09:59

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, 2
rs.addnew()


rs("NoEtudiant")= absence


rs.update
rs.close
%>

</body>
</html>

0

#4 L'utilisateur est hors-ligne   P.O.K 

  • Groupe : Actif
  • Messages : 46
  • Inscrit(e) : 18-septembre 08

Posté 16 décembre 2008 - 15:38

J'ai laissé tomber cette application en fin de compte..

Merci quand même d'avoir essayé :thumbsup:

Ce message a été modifié par P.O.K - 16 décembre 2008 - 15:39.

0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)