begin process at 2012 05 27 06:41:16
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > FIXER LE CHOIX D'UNE BALISE <SELECT> LORS D'UN ENVOI DE FORMULAIRE

FIXER LE CHOIX D'UNE BALISE <SELECT> LORS D'UN ENVOI DE FORMULAIRE


 Information sur la source

Note :
Aucune note
Catégorie :Astuces Classé sous :asp, select, combo, selection, fixer Niveau :Débutant Date de création :06/10/2006 Date de mise à jour :08/10/2006 18:36:23 Vu :12 991

Auteur : bobhacker

Ecrire un message privé
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

 Description

Ce code permet, après soumission d'un formulaire ASP contenant une ou plusieurs combobox (balise <select>), de retrouver dans la liste le ou les choix sélectionnés.
En effet, si aucun élément de la liste ne comporte l'option "selected", la combobox se positionne automatiquement sur le premier élément de la liste après l'envoi du formulaire, ce qui peut être génant, par exemple pour retrouver à quoi correspondent des données issues d'une table.

Source

  • <%@ Language=VBScript %>
  • <HTML>
  • <HEAD>
  • <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
  • </HEAD>
  • <BODY>
  • <%
  • dim i
  • if Request.Form("submit") = "Soumettre" then
  • %>
  • <form method="post" name="formtest" action="test.asp">
  • <table border=0 cellpadding=0 cellspacing=0>
  • <tr>
  • <td>
  • Vous avez sélectionné : <%=Request.Form("combo1")%> et <%=Request.Form("combo2")%>
  • </td>
  • </tr>
  • <tr>
  • <td>
  • <select name="combo1">
  • <%
  • for i = 0 to 4
  • %>
  • <option value="<%Response.Write(i)%>" <%if cint(Request.Form("combo1")) = i then Response.Write("selected")%>><%Response.Write(i)%></option>
  • <%
  • next
  • %>
  • </select>
  • </td>
  • </tr>
  • <tr>
  • <td>
  • <select name="combo2">
  • <%
  • for i = 5 to 9
  • %>
  • <option value="<%Response.Write(i)%>" <%if cint(Request.Form("combo2")) = i then Response.Write("selected")%>><%Response.Write(i)%></option>
  • <%
  • next
  • %>
  • </select>
  • </td>
  • </tr>
  • <tr>
  • <td>
  • <input type="submit" name="submit" value="Soumettre">
  • </td>
  • </tr>
  • </table>
  • </form>
  • <%
  • else
  • %>
  • <form method="post" name="formtest" action="test.asp">
  • <table border=0 cellpadding=0 cellspacing=0>
  • <tr>
  • <td>
  • <select name="combo1">
  • <%
  • for i = 0 to 4
  • %>
  • <option value="<%Response.Write(i)%>"><%Response.Write(i)%></option>
  • <%
  • next
  • %>
  • </select>
  • </td>
  • </tr>
  • <tr>
  • <td>
  • <select name="combo2">
  • <%
  • for i = 5 to 9
  • %>
  • <option value="<%Response.Write(i)%>"><%Response.Write(i)%></option>
  • <%
  • next
  • %>
  • </select>
  • </td>
  • </tr>
  • <tr>
  • <td>
  • <input type="submit" name="submit" value="Soumettre">
  • </td>
  • </tr>
  • </table>
  • </form>
  • <%
  • end if
  • %>
  • </BODY>
  • </HTML>
<%@ Language=VBScript %>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>
<%
dim i

if Request.Form("submit") = "Soumettre" then
%>
<form method="post" name="formtest" action="test.asp">
<table border=0 cellpadding=0 cellspacing=0>
<tr>
	<td>
		Vous avez sélectionné : <%=Request.Form("combo1")%> et <%=Request.Form("combo2")%>
	</td>
</tr>
<tr>
	<td>
		<select name="combo1">
		<%
		for i = 0 to 4
		%>
		<option value="<%Response.Write(i)%>" <%if cint(Request.Form("combo1")) = i then Response.Write("selected")%>><%Response.Write(i)%></option>
		<%
		next
		%>
		</select>
	</td>
</tr>
<tr>
	<td>
		<select name="combo2">
		<%
		for i = 5 to 9
		%>
		<option value="<%Response.Write(i)%>" <%if cint(Request.Form("combo2")) = i then Response.Write("selected")%>><%Response.Write(i)%></option>
		<%
		next
		%>
		</select>
	</td>
</tr>
<tr>
	<td>
		<input type="submit" name="submit" value="Soumettre">
	</td>
</tr>
</table>
</form>
<%
else
%>
<form method="post" name="formtest" action="test.asp">
<table border=0 cellpadding=0 cellspacing=0>
<tr>
	<td>
		<select name="combo1">
		<%
		for i = 0 to 4
		%>
		<option value="<%Response.Write(i)%>"><%Response.Write(i)%></option>
		<%
		next
		%>
		</select>
	</td>
</tr>
<tr>
	<td>
		<select name="combo2">
		<%
		for i = 5 to 9
		%>
		<option value="<%Response.Write(i)%>"><%Response.Write(i)%></option>
		<%
		next
		%>
		</select>
	</td>
</tr>
<tr>
	<td>
		<input type="submit" name="submit" value="Soumettre">
	</td>
</tr>
</table>
</form>
<%
end if
%>
</BODY>
</HTML>

 Conclusion

La page "test.asp" comporte deux combos ("combo1" et "combo2") qui gardent les choix effectués, même après avoir cliqué sur le bouton "Soumettre".

Pour mieux se rendre compte de la différence, il faut supprimer les lignes :
- <%if cint(Request.Form("combo1")) = i then Response.Write("selected")%>
et
- <%if cint(Request.Form("combo2")) = i then Response.Write("selected")%>
Dans ce cas là, après soumission, les combos reprennent automatiquement leurs premières valeurs (à savoir 0 pour combo1 et 5 pour combo2).


 Historique

08 octobre 2006 18:36:23 :
Suite au commentaire d'un des membres, j'ai jugé que le niveau "Initié" était un peu surévalué... =D Autant pour moi !

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) ASP.NET - SAVOIR QUAND L'UTILISATEUR FERME LA FENETRE VIA CA... par werdDomain
CLASSE IMBRIQUÉS EN VBSCRIPT DE DOSSIERS (APPLICABLE ASP) par internetdev
Source avec Zip SÉRIALISER / DÉSÉRIALISER DES VARIABLES EN ASP par lejdu
CREATION D'UN AUTOCOMPLETE JQUERY AVEC UN CODE SOURCE ASP ET... par dedebis84
Source .NET (Dotnet) RÉCUPÉRER DES VALEURS D'UNE LIGNE DANS UN DATAGRID APRÈS AVO... par PascalCmoa

 Sources en rapport avec celle ci

CLASSE IMBRIQUÉS EN VBSCRIPT DE DOSSIERS (APPLICABLE ASP) par internetdev
Source avec Zip GESTION D'UNE BIBLIOTHÈQUE par Elmarzougui
Source avec Zip UN MODULE POUR APPRENDRE SQL par Elmarzougui
CREATION D'UN AUTOCOMPLETE JQUERY AVEC UN CODE SOURCE ASP ET... par dedebis84
Source .NET (Dotnet) DROPDOWNLIST AVEC BDD SQL SERVER ET UN DATA SELECT par epetegnief

Commentaires et avis

Commentaire de Nurgle le 06/10/2006 19:16:31 administrateur CS

Si je peux suggérer une syntaxe xHTML correcte (noms de balises en minuscule...) et pourquoi pas, une mise en page sans tableaux... :p

Sinon, je trouve que niveau "Initié", c'est très exagéré...

De plus, il y a un problème avec la ligne :
if Request.Form("submit") = "Soumettre" then
en effet, au 1er chargement de la page, ce ne sera pas égal à Soumettre, et donc rien ne sera affiché.

(je ne donne pas de note pour l'instant)

Commentaire de jesusonline le 07/10/2006 02:28:31 administrateur CS

Juste pour info, ce genre de "problème" est nativement traité en asp.net, il suffit d'écrire

<asp:DropDownList ID="ddl1" runat="server">
    <asp:ListItem Text="monTexte1" Value="0" />
    <asp:ListItem Text="monTexte2" Value="1" />
</asp:DropDownList>

Commentaire de bobhacker le 08/10/2006 18:40:18

Nurgle > Au sujet de la mise en page, sache que les tableaux sont certainement ce qu'il y a de mieux... :)
En  ce qui concerne le niveau de ma source, le problème est réglè, je pense que tu avais raison ;)
Au premier chargement de la page, c'est le "else" du "if request.form('submit') = 'Soumettre'" qui rentre en compte : les combos s'affichent avec leurs choix par défaut (0 et 5).

jesusonline > merci pr l'info! ;p

Commentaire de Nurgle le 08/10/2006 19:39:28 administrateur CS

Des tableaux pour afficher des données, là je conteste pas ; mais des tableaux juste pour aligner 2 ou 3 combo, là c'est des balises inutiles. (une liste <ul /> et 1 lignes de CSS et c'est fini :p).

Pour le "else", en effet excuse je l'avais pas vu :$ ! lol
Néanmoins tu as beaucoup de choses inutiles... Un exemple plus court :
<%
Function WriteOptionValue(comboName,i)
If CInt(Request.Form(comboName)) = i Then
maString = "<option value=""" & i & "" selected=""selected"">" & i & "</option>"
Else
maString = "<option value=""" & i & """>" & i & "</option>"
End If
Return maString
End Function
%>
<form ...>
<ul>
<li>
<select name="combo1">
        <%
        For i = 0 to 4
       Response.Write(WriteOptionValue("combo1",i))
        Next
        %>
</select>
</li>
<li>Une deuxième combo ici si tu veux...</li>
<li><input type="submit" .../></li>
</ul>
</form>
...

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Problème ASP avec plusieurs actions dans ma procédure stockée... [ par Hesky ] Bonjour, J'ai un petit problème lorsque je met plusieurs actions (select, insert, update) dans une procédure stockée...Lorsque je veux récupèrer les v Select sur date dans un ASP [ par Jacques76 ] J'ai sur mon serveur un fichier Access avec une zone date (type date/time).Je l'interroge avec des pages .asp . J'ai un problème pour faire un select exemple s.v.p [ par rochonweb ] Salut, je voudrait un exemple facile en asp.Un formulaire, un select a l'intérieur, celui si a deux choix, disons choix1 et choix2.lorsque l,usager cl récupérer la valeur d'un select grace à onchange [ par pikachoo22 ] Voila mon probleme, je dois récupérer la valeur d'un select sur un onchange (avant la validation du formulaire) pour le stocker dans une variable ASP. Probleme de pagination en asp [ par elbahja ] Salut !J'ai un probleme de pagination en asp, quand j'utilise une requete SELECT avec la clause WHERE juste la premiere page qui s'affiche, donc je pe Listbox Asp.net C# : Selection & mise en couleur [ par Xn3m ] Bonjour j'ai un souci :-(j'explique mon problemej'ai une listbox certains éléments doivent etre "selectionné" du moins avec un background de couleur r selections en asp [ par knazim ] Bonjour,Voila apres la construction d'une page asp qui affiche des donnees d'une tableaccess sous forme de liste d&#233;roulante. je voudrais apres se probléme asp [ par abari ] salut tout le mondej'ai un popup qui contient un combo dont s'affiche tous les articles que j'ai dans la base,le probléme c'est qd j'ajoute une articl envoi formulaire vers deux pages [ par midosd ] salut tout le monde j'ai une page html index.html qui contient trois cadres(frames) cadre.asp facture.asp livraison.asp dans la page cadre.asp j'ai u Filtre combobox Asp [ par demicervo ] Bonjour, Alors en fait j'ai une combobox reliée à une table de ma base qui contient des identifiants clients. La liste étant très longue je voudrais


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,983 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales