Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

xanburzum

[Resolvido] Recuperando dados multiple selection

Recommended Posts

Como permitir que os usuários selecionar vários itens de uma lista suspensa.

 

 

<%
Dim intNumberSelected  ' Contagem de itens selecionados
Dim strSelectedTeams   'String retornado de QS (ou formulário)
Dim arrSelectedTeams   ' Variavel array
Dim I                  ' Looping variável
	
' Recuperar a contagem de itens selecionados
intNumberSelected = Request.Form("teams").Count
	
If intNumberSelected = 0 Then
	%>
	Escolha seus times favoritos (segure a tecla CTRL para selecionar mais de um):<<BR>
	
	<FORM ACTION="multiple_selection.asp" METHOD="post">

		<SELECT NAME="teams" MULTIPLE SIZE="10">
			<OPTION>Anaheim Angels</OPTION>
			<OPTION>Atlanta Braves</OPTION>
			<OPTION>Arizona Diamondbacks</OPTION>
			<OPTION>Baltimore Orioles</OPTION>
			<OPTION>Boston Red Sox</OPTION>
			<OPTION>Chicago Cubs</OPTION>
			<OPTION>Chicago White Sox</OPTION>
			<OPTION>Cincinnati Reds</OPTION>
			<OPTION>Cleveland Indians</OPTION>
			<OPTION>Colorado Rockies</OPTION>
			<OPTION>Detroit Tigers</OPTION>
			<OPTION>Florida Marlins</OPTION>
			<OPTION>Houston Astros</OPTION>
			<OPTION>Kansas City Royals</OPTION>
			<OPTION>Los Angeles Dodgers</OPTION>
			<OPTION>Milwaukee Brewers</OPTION>
			<OPTION>Minnesota Twins</OPTION>
			<OPTION>Montreal Expos</OPTION>
			<OPTION>New York Mets</OPTION>
			<OPTION>New York Yankees</OPTION>
			<OPTION>Oakland Athletics</OPTION>
			<OPTION>Philadelphia Phillies</OPTION>
			<OPTION>Pittsburgh Pirates</OPTION>
			<OPTION>San Diego Padres</OPTION>
			<OPTION>San Francisco Giants</OPTION>
			<OPTION>Seattle Mariners</OPTION>
			<OPTION>St. Louis Cardinals</OPTION>
			<OPTION>Tampa Bay Devil Rays</OPTION>
			<OPTION>Texas Rangers</OPTION>
			<OPTION>Toronto Blue Jays</OPTION>
		</SELECT>

		<BR>

		<INPUT type="submit" value="Send Team Selection">

	</FORM>
	<%
Else
	'Obter a lista delimitada por vírgulas dos times que é devolvido 
'De Form. Esta também poderia ser obtido a partir da 
'coleção QueryString, mas foi usando o método POST 

	strSelectedTeams = Request.Form("teams")
	
	'Split na variável de texto em um array, então temos fácil 
'Acesso  para os elementos individuais.
'A matriz terá início às 0 não 1 para uma matriz de 10 item 

	
	'Split recebe uma string e então procura por um delimitador 
'(Neste caso a vírgula seguido por um espaço), em que seqüência. 
'retorna uma matriz de string que consiste em todo 
'Texto exceto os delimitadores cortada em pequenos pedaços 
'No delimitadores. Os dois últimos parâmetros especificam o 
'Número máximo de delimitadores para encontrar (-1 = todos) e a última 
'O que é um tipo de comparação para executar 
'(0 = comparação binária, comparação de texto = 1)
	arrSelectedTeams = Split(strSelectedTeams, ", ", -1, 1)


	'
	'ReDim arrSelectedTeams(intNumberSelected - 1)
	'
	'For I = 1 To intNumberSelected
	'	arrSelectedTeams(I - 1) = Request.Form("teams")(I)
	'Next 'I
	'
	' We now join our regularly scheduled program already in progress...
	
		
	' Show users the count of and string containing their choices
	%>
	<P>Voce selecionou <B><%= intNumberSelected %></B> time(s).</P>

	<P>Request.Form("teams") retornado:</P>
	<P><FONT SIZE="-1"><B><%= strSelectedTeams %></B></FONT></P>

	<P>Você pode facilmente converter isso em um array usando. O conteúdo dessa matriz são mostrados na tabela abaixo:</P>
	
	<TABLE BORDER="1">
		<TR>
			<TH>Array Element <FONT COLOR="#FF0000">*</FONT></TH>
			<TH>Valor</TH>
		</TR>
		<%
		' Algumas linhas de depuração se você começar a ter problemas
		'Response.Write LBound(arrSelectedTeams)
		'Response.Write UBound(arrSelectedTeams)

		'Loop array mostrando uma linha de tabela para cada seleção
		For I = LBound(arrSelectedTeams) To UBound(arrSelectedTeams)
			%>
			<TR>
				<TD><%= I %></TD>
				<TD><%= arrSelectedTeams(I) %></TD>
			</TR>
			<%
		Next 'I
		%>
	</TABLE>
	<%

	'possível depuração
	'Dim Item
	'For Each Item in Request.Form
	'	Response.Write Request.Form.Key(Item) & ": "
	'	Response.Write Request.Form.Item(Item) & " "
	'	Response.Write Request.Form.Item(Item).Count & "<BR>"
	'Next
End If
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.