Ir para conteúdo

POWERED BY:

Arquivado

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

Pdruu

<option> sem duplicar

Recommended Posts

Alguem sabe como trazer o valor dentro do <select> quando o usuario tenta alterar um cadastro por exemplo, mais sem duplicar esse valor?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como é?

 

Os dados <option>'s só serão duplicados se você inserir mais de uma vez. Se o menu é montado dinamicamente, através de uma linguagem do lado servidor, certifique-se de não estar gerando uma matriz com valores repetidos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não.. Me espressei mal.

Assim, o usuario fez o cadastro i pá neh..

ai ele tem a opção de alterar, quando ele altera ele traz os dados do cadastro q ele escolheu(traz os dados pelo codigo)pra dentro dos selects e inputs.

Tipo.. tenhu um select que traz os dias do mes,quando ele altera vai trazer o dia q ele cadastro setado no select i mais em baixo tem aquele dia de novo.. saco?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah! Mas isso é fácil.

 

Você monta o SELECT com os dias e coloca o atributo selected="selected" apenas no dia certo.

 

Sua dúvida não tem relação com JavaScript, vou postar como seria em PHP, caso essa não seja a linguagem que usa, o Moderador responsável move o tópico e alguém te mostra como fazer na linguagem em questão.

 

<?php

$days = range( 1, 31 );
$selectedDay = 13;

print "<select name='day'>\n\t";

array_walk(

   $days,

   function( $day ) use( $selectedDay ) {

       printf( "<option value='%d'%s>%d</option>\n\t",
           $day,
           ( $selectedDay == $day ? ' selected="selected"' : '' ), $day );
   }
);

print "\n</select>";

Vou postar o HTML gerado para o caso de PHP não ser sua linguagem você pelo menos ver se é isso que precisa:

 

<select name='day'>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='6'>6</option>

<option value='7'>7</option>
<option value='8'>8</option>
<option value='9'>9</option>
<option value='10'>10</option>
<option value='11'>11</option>
<option value='12'>12</option>

<option value='13' selected="selected">13</option>
<option value='14'>14</option>
<option value='15'>15</option>
<option value='16'>16</option>
<option value='17'>17</option>
<option value='18'>18</option>

<option value='19'>19</option>
<option value='20'>20</option>
<option value='21'>21</option>
<option value='22'>22</option>
<option value='23'>23</option>
<option value='24'>24</option>

<option value='25'>25</option>
<option value='26'>26</option>
<option value='27'>27</option>
<option value='28'>28</option>
<option value='29'>29</option>
<option value='30'>30</option>

<option value='31'>31</option>

</select>

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema é que eu nao sei o dia certo..

por exemplo tem um cadastro no banco; dia: 4 , mes: 10 , descrição: bla bla bla.

ai o usuario clica la em alterar. ai traz esses valores pra cada select..

No select mes eles aparecem assim:

 

10

1

2

3

4

5

6

7

8

9

10

11

12

queria q nao repeti-se o mes (10) e que ele viesse como selected..

Como faço?????

sendo que estou fazendo em ASP!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se está recuperando o valor do mês para coloca-lo como o padrão escolhido pelo usuário, o mês irá se repetir, pois seria o valor "padrão" e abaixo teria as outras opções.

 

Existem 2 possibilidadades:

 

A primeira seria manter o primeiro valor em branco, com um <option></option>

 

Mas se deseja exibir o escolhido pelo usuário mas não repeti-lo nas outras opções desse option, terá de fazer uma comparação dentro do loop.

Por exemplo:

...
if escolhido = mes then
rs.movenext (ou incrementa o contador, depende de como é feito seu option de mês)
else
response.write rs("mes")
end if

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que eu entendi você quer listar no select o dia escolhido pelo usuário mais os outros dias sem repetir o dia escolhido.

 

Faz um FOR usando o atributo selected

 

<%

for i=1 to 31

%>

<option value="<%=i%>" <% If i = RS("data_usuario") Then Response.Write "selected" End If % ><%=i%></option>

<%

Next

%>

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.