Ir para conteúdo

Arquivado

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

Wagner Web

- erro na apresentação dos dados -

Recommended Posts

Boa tarde iMasters Javascript!

 

Meus miolos já foram todos torrados nesta tarde, só sobrou um para que eu pudesse postar minha dúvida aqui. :lol:

 

Fiz esta função, que pega o "value" da combo, vê se ela é "diferente de 0". Se for, pega o "texto da combo referente ao seu value" e imprime na tela.

 

Mas isso não ocorre, o estranho que ela só mostra a cor MARROM e mesmo assim quando clica na cor PRETO. :blink:

 

Ahhh!!! Um detalhe muito importante: Na função, onde coloquei um "alert($valor)", que é para ver a saída da variável naquele instante, ela retorna o value CORRETO!

 

Este é o conteúdo da combo:

4|Azul

3|Preto

5|Marrom

 

 

E esta é a função:

 

function muda_edit_cor(){   $valor = document.frm_editar_cor.cmb_cores_editar.options.value;  if ($valor!=0){  	// alert só para ver a saída da variável  	alert ($valor);  	$combo = document.frm_editar_cor.cmb_cores_editar.options[$valor].text;  	alert ($combo);  }}

 

Conto com vocês SUPER IMASTERS! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

 

Grande abraço!

 

 

Wagner Web

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah! O erro que aparece no Navegador é este:

 

 

document.frm_editar_cor.cmb_cores_editar.options[...].text é nulo ou não é um objeto

 

 

Por favor pessoal, quem souber ficarei muito grato... :)

 

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

ué cara...

 

eu fiz isso aki e deu certo...

 

você tá colocando o evento certo pra chamar a função? no caso do combo box é aconselhavel usar onChange="", ou talvez o problema seja q ele n tá achando o form. aí você coloca o 'name' e o 'id' iguais

 

olha o meu código

//o seu código eu nem mexifunction muda_edit_cor(){ 	$valor = document.form1.cmb_cores_editar.options.value;		if ($valor!=0){  // alert só para ver a saída da variável  alert($valor);  $combo = document.frm_editar_cor.cmb_cores_editar.options[$valor].text;  alert($combo);	}}//no meu form:<form name="form1" id="form1"><select name="cmb_cores_editar" size="3" onChange="muda_edit_cor()">	<option value="4">azul</option>	<option value="3">preto</option>	<option value="5">marrom</option></select></form>

bom, aqui deu certo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

fala nrmb! blzinha?

 

Então, realmente o alert com o Value aparece, mas ele não consegue mostrar o valor do texto através da variável $combo.

 

Pode perceber, que ao testar este script que você me passou, aparece um no navegador, lá em baixo, escrito:

 

document.frm_editar_cor.cmb_cores_editar.options[...].text é nulo ou não é um objeto

 

 

Modifiquei todas as ids e names, mas mesmo assim está teimando em ficar este erro.. http://forum.imasters.com.br/public/style_emoticons/default/shifty.gif

 

 

Amigão, obrigado pela força!

 

Se tiver mais alguma idéia ficarei muito agradecido. :)

 

 

Grande abraço,

 

Wagner Web

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não acredito! :wacko:

 

Fiquei a tarde inteira quebrando a cabeça por causa de 1 selectedIndex!! xD

 

 

Bem, foi isso que aconteceu:

 

Ao invés de:

$valor = document.frm_editar_cor.cmb_cores_editar.options.value;

 

Tive que colocar:

$valor = document.frm_editar_cor.cmb_cores_editar.selectedIndex;

 

function muda_edit_cor(){  $valor = document.frm_editar_cor.cmb_cores_editar.selectedIndex; if ($valor!=0){  // alert só para ver a saída da variável  alert ($valor);  $combo = document.frm_editar_cor.cmb_cores_editar.options[$valor].text;  alert ($combo); }}

Obrigado nrmb e quem leu para tentar ajudar também! :)

 

 

[]'s

 

Wagner Web

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara... Da forma que você passou, a opcao 1 (azul) não retorna nada.

Segue o teu código corrigido:

<HTML>	<HEAD>  <TITLE> Nova Página </TITLE>  <script TYPE="text/javascript">  	//o seu código eu nem mexi  	function muda_edit_cor(){     $valor = frm_editar_cor.cmb_cores_editar.options.value;    if ($valor!=0){     // alert só para ver a saída da variável     alert($valor);     // armazenando qual a posicao da opcao escolhida     escolha = frm_editar_cor.cmb_cores_editar.selectedIndex;      // armazenando o texto da posicao escolhida     $combo = frm_editar_cor.cmb_cores_editar.options[escolha].text;     // imprimindo valor     alert($combo);    }  	}  </SCRIPT>	</HEAD>		<BODY>  <form name="frm_editar_cor" id="frm_editar_cor">  	<select name="cmb_cores_editar" size="3" onChange="muda_edit_cor()">    <option value="4">azul</option>    <option value="3">preto</option>    <option value="5">marrom</option>  	</select>  </form>	</BODY></HTML>

Você precisava armazenar numa variavel a posicao da opcao escolhida (selectedIndex) e passar isto como parametro para o options[...] antes de imprimir.

Isto permite pegar o texto correto de acordo com a posicao(Index).

 

Flw http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Martinelli

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Martinelli! Obrigado pela atenção!Realmente o que você está falando está correto. Mas posso fazer uma perguntinha de leigo?? :D Qual a diferençã entre options.value e .selectedIndex? Muito obrigado pela ajuda!Gr. []!Wager Web

Compartilhar este post


Link para o post
Compartilhar em outros sites

"options.value" = pega o valor VALUE existente na tag OPTION do SELECT;

"selectedIndex" = pega a posição da opção escolhida, como se fosse um array (começando pelo zero)

 

Exemplo

 

4|Azul: options.VALUE = 4; selectedIndex = 0;options.TEXT = Azul

3|Preto: options.VALUE = 3; selectedIndex = 1;options.TEXT = Preto

5|Marrom: options.VALUE = 5; selectedIndex = 2;options.TEXT = Marrom

 

Espero que dê pra entender.

 

Qualquer nova dúvida, posta aí.

 

Flw http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Martinelli

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.