Ir para conteúdo

POWERED BY:

Arquivado

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

weslleysolo

[Resolvido] "Printar" valor "selected" dinami

Recommended Posts

Boas amigos...

 

Cá estamos pra mais uma dificuldade...como é normal, né :)...

 

Bom, tenho duas tabelas em meu DB, em uma tenho as Especialidades em outra os ID dos médicos e os ID das Especialidades....montei um select multiple que mostre todas as Especialidades existentes e que mostre selecionado todas as que sao de um determinado médico...sacou....bom, nao estou tendo o resultado que quero...vejam o codigo...

 

$slq_especialidades = mysql_query("SELECT * FROM ".ESPECIALIDADES." WHERE especialidadesAtiva='S'")or die("Erro ao selecionar especialidades". mysql_error());
															
						$slq_esp = mysql_query("SELECT * FROM ".ESPECIALIDADES_MEDICOS." WHERE medicoId='".(int)$_GET["modMedicoId"]."'")or die("Erro ao selecionar especialidades" .mysql_error());
						
						$linhas = mysql_num_rows($slq_esp);
						
					while($n = mysql_fetch_array($slq_esp))
						{
							$nn[] = $n[1]; 	
						}	
						while($m = mysql_fetch_assoc($slq_especialidades))
							{
								for($conta=0, $c=$linhas; $conta<$c; $conta++){
									$sl = ($m["especialidadesId"] == $nn[$conta]) ? "selected" : null;
								}
								echo "<option value='".$m["especialidadesId"]."' $sl >".$m["especialidadesNome"]."</option>\r\n";
							
							}
						
					?>

Neste caso, existem 30 especialidades, e esse médico em questao possui 5...mas só esta sendo selecinada o último ID....exemplo:

 

os ID's da tabela ESPECIALIDADES_MEDICOS são : 1-2-3-4-11 | só esta sendo selecinada o ID 11 no select...

 

Onde estou errando...lembrando que estou quebrando cabeça desde ontem...

 

Obrigado mais uma vez....

Compartilhar este post


Link para o post
Compartilhar em outros sites

[bINGO]

 

Chega um momento que a mente cansa e você nao pensa direito...ai aquele com mente mais sossegada dá um dica, e bimba!!!

 

Valeu mano....

 

Postando para futuras consultas

						$slq_especialidades = mysql_query("SELECT * FROM ".ESPECIALIDADES." WHERE especialidadesAtiva='S'")or die("Erro ao selecionar especialidades". mysql_error());
															
						$slq_esp = mysql_query("SELECT * FROM ".ESPECIALIDADES_MEDICOS." WHERE medicoId='".(int)$_GET["modMedicoId"]."'")or die("Erro ao selecionar especialidades" .mysql_error());
						
					while($n = mysql_fetch_array($slq_esp))
						{
							$nn[] = $n[1]; 	
						}	
						while($m = mysql_fetch_assoc($slq_especialidades))
							{
								
								if(in_array($m["especialidadesId"],$nn)){
								echo "<option value='".$m["especialidadesId"]."' selected >".$m["especialidadesNome"]."</option>\r\n";
								}else{
								
								echo "<option value='".$m["especialidadesId"]."'  >".$m["especialidadesNome"]."</option>\r\n";}
							
							}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa é a intenção do forúm.

Boa sorte!

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

1. exemplo prático

 

select-multiple.php

<?php
$v  = 'foo';
$$v = false;
if( isset( $_POST[$v] ) )
{
	$$v	= $_POST[$v];
	$$v['null'] = false;
}

$form = array
		(
			'foo' => array
					(
						'type'	  => 'select-multiple',
						'options'   => array
								( 
									'one'   => 'one',
									'two'   => 'two',
									'three' => 'three',
									'four'  => 'four',
									'five'  => 'five',
								),
						'values'	=> $$v ? $$v : array()
					),
		);

?>
<form action="select-multiple.php" method="post">
<select name="foo" multiple="multiple">
<?php


	foreach( $form['foo']['options'] as $value => $label )
	{
		( $sel = array_search( $value, $form['foo']['values'] ) or  $sel === 0 ) ? $sel = ' selected' : $sel = null;
		echo PHP_EOL . '<option value="' . $value . '"' . $sel . '>' . $label . '</option>';
	}
?>
</select>
<input type="submit" value="Send" />
</form>

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.