Ir para conteúdo

POWERED BY:

Arquivado

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

Bru_ce

Combobox com conteúdo do banco

Recommended Posts

Amigos,
Estou utilizando ajax para puxar os dados do banco e preencher alguns inputs com o retorno ..

Só que ficou uma dúvida, tem como deixar selecionado um combobox com um dado que veio do banco ?

 

Estou inserindo os dados assim:

<td width='139'>Data da Avaliação:</td>
<td><input type='text' name='data' value='".$linhaConsulta['data']."' /></td>
</tr>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então cara, seria +/- assim ó:

Vamos supor que no banco esta o valor 3 e o combobox esta assim:

 

 

<select name='valor1'> 
<option>Selecione</option>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
</select>

 

Porém quando eu faço a query eu gostaria o que o número 3 ja viesse selecionado entende ..

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta assim ó:

 

<html>
 <head>
 <title>teste</title>
<script type="text/javascript">

window.onload = function(){

	var n = 2; //valor que vem do banco

	var elo = document.querySelectorAll('select#valor1 option[value="'+n+'"]');

	if(elo.length == 1){
		elo.item(0).selected = "selected";
	}

}

 </script>

 </head>
 <body>
 	<select id='valor1'> 
		<option>Selecione</option>
		<option value='1'>a</option>
		<option value='2'>b</option>
		<option value='3'>c</option>
	</select>
 </body>
 </html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa, funcionou amigo.
Porém tenho 22 selects e precisava que acontecesse em todos.

 

Outra coisa, no lugar do valor 2 teria que ser o valor que esta na coluna da tabela no BD.

 

AQUI

 

var n = 2; //valor que vem do banco

Compartilhar este post


Link para o post
Compartilhar em outros sites

vai pela logica:

window.onload = function(){

  var arr[22] = 2;

  for(var x=0 ,xx = arr.length; x<=xx; x++){

	var elo = document.querySelectorAll('select#valor'+x+' option[value="'+arr[x]+'"]');

	if(elo.length == 1){
		elo[1].selected = "selected";
	}

 }

}

e o arr com os valores na ordem dos select's.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei assim cara, porém não foi ..

 

 

var arr = [40, 20, 20, 0, 20, 0, 10];
 
  for(var x=0 ,xx = arr.length; x<=xx; x++){
 
var elo = document.querySelectorAll('select#combo'+x+' option[value="'+arr[x]+'"]');
 
if(elo.length == 1){
elo[1].selected = "selected";
}
 
 }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não aparece cara, eu acho que ele não ta percorrendo ..
Coloquei uma class nos combos, acho que o problema esta aqui ó, tentei deixar assim:

 

 

var arr = [40, 20, 20, 0, 20, 0, 10];
 
  for(var x=0 ,xx = arr.length; x<=xx; x++){
 
 
var elo = document.querySelectorAll('select.combo option[value="'+arr[x]+'"]');
 
if(elo.length == 1){
elo[1].selected = "selected";
}
 
 }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui ta dando...

 

<html>
 <head>
 <title>teste</title>
<script type="text/javascript">

window.onload = function(){


	var arr = [1,3,null,2,1], elo;


  for(var x=0 ,xx = arr.length -1; x<=xx; x++){

	elo = document.querySelectorAll('select#valor'+x+' option[value="'+arr[x]+'"]');

	if(elo.length == 1){
		elo.item(0).selected = "selected";
	}

 }


}

 </script>

 </head>
 <body>
 	<select id='valor0'> 
		<option>Selecione</option>
		<option value='1'>a</option>
		<option value='2'>b</option>
		<option value='3'>c</option>
	</select>
		<select id='valor1'> 
		<option>Selecione</option>
		<option value='1'>a</option>
		<option value='2'>b</option>
		<option value='3'>c</option>
	</select>
		<select id='valor2'> 
		<option>Selecione</option>
		<option value='1'>a</option>
		<option value='2'>b</option>
		<option value='3'>c</option>
	</select>
		<select id='valor3'> 
		<option>Selecione</option>
		<option value='1'>a</option>
		<option value='2'>b</option>
		<option value='3'>c</option>
	</select>
		<select id='valor4'> 
		<option>Selecione</option>
		<option value='1'>a</option>
		<option value='2'>b</option>
		<option value='3'>c</option>
	</select>
 </body>
 </html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não estou conseguindo mano kkk

 

CÓDIGO

 

JS
var arr = [40,20,null,2,1], elo;
 
 
for(var x=0 ,xx = arr.length -1; x<=xx; x++){
 
elo = document.querySelectorAll('select#valor'+x+' option[value="'+arr[x]+'"]');
 
if(elo.length == 1){
elo.item(0).selected = "selected";
}
 
}
 
 
HTML
<select name='valor1' id='valor1'>
<option>Selecione</option>
<option value='40'>SIM</option>
<option value='0'>NÃO</option>
<option value='NA'>NA</option>
</select>
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

O id tem que começar no zero, porque o array começa pelo indice 0:


Aqui ta rodando redondo (inclusive no ie)

<html>
 <head>
 <title>teste</title>
<script type="text/javascript">

window.onload = function(){


	var arr = [40], elo;
 
 
for(var x=0 ,xx = arr.length -1; x<=xx; x++){
 
elo = document.querySelectorAll('select#valor'+x+' option[value="'+arr[x]+'"]');
 
if(elo.length == 1){
elo.item(0).selected = "selected";
}
 
}


}

 </script>

 </head>
 <body>
 	<select name='valor1' id='valor0'>
		<option>Selecione</option>
		<option value='40'>SIM</option>
		<option value='0'>NÃO</option>
		<option value='NA'>NA</option>
</select>
 </body>
 </html>

ou pelo name (pra não ter id e name igual, porque não faz sentido)

 

 

<html>
<head>
<title>teste</title>
<script type="text/javascript">
window.onload = function(){

var arr = [40], elo;


for(var x=0 ,xx = arr.length -1; x<=xx; x++){

elo = document.querySelectorAll('select[name="valor'+x+'"] option[value="'+arr[x]+'"]');

if(elo.length == 1){
elo.item(0).selected = "selected";
}

}

}
</script>
</head>
<body>
  <select name='valor0'>
  <option>Selecione</option>
  <option value='40'>SIM</option>
  <option value='0'>NÃO</option>
  <option value='NA'>NA</option>
</select>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora foi hahaha,

 

 

Agora tem outro problema rs .. se eu coloco o script da esse erro;

 

Parse error: syntax error, unexpected ''+arr[x]+'' (T_CONSTANT_ENCAPSED_STRING), expecting ',' or ';' in C:\xampp\htdocs\projetos\cliente-oculto\cinema\buscar-shopping.php on line 18

 

 

echo "<script>
window.onload = function(){
var arr = [40,40,null,2,1], elo;
 
 
for(var x=0 ,xx = arr.length -1; x<=xx; x++){
 
elo = document.querySelectorAll('select.valor'+x+' option[value="'+arr[x]+'"]');
 
 
if(elo.length == 1){
elo.item(0).selected = 'selected';
}
 
}
 
}
 
</script>";

Compartilhar este post


Link para o post
Compartilhar em outros sites


echo "<script>

window.onload = function(){

var arr = [40,40,null,2,1], elo;

 

 

for(var x=0 ,xx = arr.length -1; x<=xx; x++){

 

elo = document.querySelectorAll('select.valor'+x+' option[value=\"'+arr[x]+'\"]');

 

 

if(elo.length == 1){

elo.item(0).selected = 'selected';

}

 

}

 

}

 

</script>";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok amigo, agora outra coisa, se você quiser logicamente ..

 

Aqui em baixo, no lugar dos valores precisava colocar a consulta do PHP, só que não estou conseguindo ..

 

var arr = [40,40,null,2,1], elo;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim, onde shopping é uma variavel que eu pego de um outro combobox e jogo os dados via ajax.-

 

 

$consulta = mysql_query("SELECT * FROM cinema WHERE shopping='$shopping'");
$linhaConsulta = mysql_fetch_array($consulta);

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.