Ir ao conteúdo
  • Cadastre-se

PHP Erro com <select> e <option> no php


Posts recomendados

No meu sistema eu preciso que ao editar um plantão, apareça todos os médicos e dias disponíveis num <select>, porém sempre que preciso editar outra coisa que não seja o médico ou os dias, eles retornam para o primeiro valor que aparece no <select>. 

Por exemplo, se eu cadastro um plantão que comece na segunda e termine na quarta, para o médico Aristóteles, fica tudo ok, porém se eu for editar SOMENTE o dia que esse plantão vai acabar, o 1º de trabalho vai se tornar domingo (por que é a primeira opção que aparece no <select> e para o médico é atribuido a primeira opção de médica que aparecer, mesmo que eu não coloque.) Então, queria a ajuda de vocês para que sempre que eu for editar o plantão, apareça na barra o médico e o plantão que foram selecionados anteriormente, para que não tenha nenhuma substituição indesejada.

 

Códigos:

<label>Médico</label>
                    <select name="med" class="form-control">
                      <option>Selecione o médico: </option>
                      <?php while ($resultado = $consulta2 -> fetch_assoc()) { ?>
                        <option value="<?php echo $resultado['MED_CODIGO'] ?>">
                          <?php if ($resultado['MED_CODIGO'] == $resultadoPlant['PLANT_MED_CODIGO']) {
                            echo "Selecionado:";
                          } ?>
                          <?php echo $resultado['MED_NOME']; ?>
                        </option>
                      <?php } ?>
                    </select>

Depois mudei um pouco de como ele iria funcionar (tendo agora apenas data de início) e ele acabou dando errado, não me mostra nenhum valor. Se alguém puder me ajudar, agradeceria MUITO. porque agora preciso que me mostre os eventos que acontecem naquela semana e só me mostrem os próximos eventos, quando chegar a outra semana (que começa no domingo).

Código com alterações:

$consulta3=$MySQLi->query("SELECT *,DATE_FORMAT(EVE_DATA,'%d/%m/%Y %H:%i')as data_1 FROM TB_EVENTOS  WHERE EVE_DATA between NOW() and DATE_ADD(NOW(), INTERVAL 1 WEEK) ORDER BY EVE_DATA");

 

Link para o post
Compartilhar em outros sites
  • Moderador

@MEGATRON1432

Você não consegue definir o que foi selecionado no campo select porque a estrutura usada está errada.

 

Faça dessa maneira:

 

<?php
   include 'conexao.php';
   /*(recebe o ID do médico passado por parâmetro no action por exemplo:
     action='editaMedico.php?idmedico=<?php echo $idmedico ?>
    */ 
   $id = $_GET["idmedico"];

   //procura o médico na qual você quer editar os campos.
   $ProcuraDados = mysqli_query($conexao, "SELECT idMedico from Medico WHERE idMedico = $id");
   $editar = mysqli_fetch_object($ProcuraDados);

<select name="medico">
	<option value="0">Selecionar Médico</option>
		<?php 
			$buscaMedico = mysqli_query($conexao,"SELECT idMedico, nome FROM Medico");
				while($medico = mysqli_fetch_object($buscaMedico)):
                             		$selecionado = "<option value='$medico->idMedico' selected>$medico->nome</option>";
                             		$selecionar =  "<option value='$medico->idMedico'>$medico->nome</option>";
					($medico->idMedico == $editar->idMedico) ? $selecionado : $selecionar ;
				endwhile;
 </select>

 

Basicamente ao percorrer a tabela, você precisa testar com um IF se o id da consulta dentro do option é igual ao id de outra consulta a partir do ID do médico.

Resumindo, você tem a lista de médicos. Do lado dele você pode ter dois links ou qualquer outra coisa que envie por parâmetro o ID desse médico. Ao pegar esse id, você faz uma primeira consulta para ter o id em uma variável, depois dentro do select você faz uma nova consulta. você pega os dados de cada consulta e compara. No primeiro bloco de IF, você indica que o option é selecionado com a palavra chave selected. afinal:

 

<option value="1" selected>Nome do médico tal</option>

faz com que este valor seja selecionado. Naturalmente, o segundo bloco que é do ELSE, mostra todas os option sem ter selecionado algum,

 

 

Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

minicurso-montagem-popup.jpg

MINICURSO GRÁTIS!

Como ganhar dinheiro montando computadores!

CLIQUE AQUI E INSCREVA-SE AGORA MESMO!