Ir para conteúdo

POWERED BY:

Arquivado

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

Halan batista

Select em campo Option PHP e MYSQL

Recommended Posts

Ola.

 

Estou enfrentando um problema comum...

 

Tenho um campo <option> que preciso que fique selecionado de acordo com o registro que é puxado do banco de dados... Segue o codigo:

 

Aqui ele pega o dado registrado no BD...

<?php 
   include("../includes/config.php");
   			
   $sql = mysql_query("SELECT * FROM eventos WHERE id_evento = '$idEvento' ");

   $dados = mysql_fetch_array($sql);

   $horario = $dados["horario"];
      	
?>

Queria saber como eu faço para que ele pegue o valor cadastrado no BD, por exemplo: no BD está cadastrado 02:30, como faço para que esse horário fica selecionado no select abaixo??

 

<select name="horario" class="form-melhor" id="horario"> 
  <option value="00:00">00:00</option> 
  <option value="00:30">00:30</option> 
  <option value="01:60">01:00</option> 
  <option value="01:30">01:30</option> 
  <option value="02:00">02:00</option> 
  <option value="02:30">02:30</option> 
  <option value="03:00">03:00</option> 
  <option value="03:30">03:30</option> 
  <option value="04:00">04:00</option> 
  <option value="04:30">04:30</option> 
  <option value="05:00">05:00</option> 
  <option value="05:30">05:30</option> 
  <option value="06:00">06:00</option> 
  <option value="06:30">06:30</option> 
  <option value="07:00">07:00</option> 
  <option value="07:30">07:30</option> 
  <option value="08:00">08:00</option> 
  <option value="08:30">08:30</option> 
  <option value="09:00">09:00</option> 
  <option value="09:30">09:30</option> 
  <option value="10:00">10:00</option> 
  <option value="10:30">10:30</option> 
  <option value="11:00">11:00</option> 
  <option value="11:30">11:30</option> 
  <option value="12:00">12:00</option> 
  <option value="12:30">12:30</option> 
  <option value="13:00">13:00</option> 
  <option value="13:30">13:30</option> 
  <option value="14:00">14:00</option> 
  <option value="14:30">14:30</option> 
  <option value="15:00">15:00</option> 
  <option value="15:30">15:30</option> 
  <option value="16:00">16:00</option> 
  <option value="16:30">16:30</option> 
  <option value="17:00">17:00</option> 
  <option value="17:30">17:30</option> 
  <option value="18:00">18:00</option> 
  <option value="18:30">18:30</option> 
  <option value="19:00">19:00</option> 
  <option value="19:30">19:30</option> 
  <option value="20:00">20:00</option> 
  <option value="20:30">20:30</option> 
  <option value="21:00">21:00</option> 
  <option value="21:30">21:30</option> 
  <option value="22:00">22:00</option> 
  <option value="22:30">22:30</option> 
  <option value="23:00">23:00</option> 
  <option value="23:30">23:30</option> 
</select>

Aguardo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu colocaria todos esses horários (00:00, 00:30, 01:00...) dentro de um array, ai na hora de montar essa pilha de options usaria um foreach para ler esse array, nisso bastaria usar um if para informar se o option deve ou não estar selecionado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu colocaria todos esses horários (00:00, 00:30, 01:00...) dentro de um array, ai na hora de montar essa pilha de options usaria um foreach para ler esse array, nisso bastaria usar um if para informar se o option deve ou não estar selecionado.

 

 

Mas como eu faço isso?? Não costumo trabalhar com array...

 

Pode me mostrar um exemplo de como eu faria isso ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai vai o exemplo:

<?php

$array_teste = array('00:00','00:30','01:00','01:30');

$valor_compara = '01:00';

echo '<select name="select" id="select">';
foreach($array_teste as $val){
    $sel = ($val == $valor_compara)?'selected="selected"':'';
    
    echo '<option value="'.$val.'" '.$sel.'>'.$val.'</option>';
}
echo '</select>';

?>

E aprenda a trabalhar com arrays, pois isso é o básico do básico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia galera... Sou novo por aqui. Fiquei comedo de abrir um novo tópico pra pedir ajuda, entao resolvi pegar esse msm.
Também sou iniciante em php e estou fazendo um sistema para gerar folhas de ponto para diversos programas que tem na prefeitura onde trabalho. Lembrando que já fiz em mala direta, mas como estou iniciando em php, pensei em fazer essa aplicação.

Minha dúvida:
Dado o código abaixo:

<select name='secreta'>
<?php
include "conexao.php";
$result= mysql_query ("SELECT idsecretaria, nome_sec FROM secretaria") or die ("não foi possivel fazer a pesquina no banco");
while ($rowsec = mysql_fetch_assoc($result))
{
echo ("<option value='$rowsec[idsecretaria]'>$rowsec[nome_sec]</option>");
}
?>
</select>


//Código de inserção no banco de dados:

<?php
if(isset($_POST["cadastrar"]) && $_POST["cadastrar"] == "Cadastrar"){
$nome_local = $_POST["work_place"];
$sqlVerlocal = mysql_query("SELECT nome_localtra FROM localtrabalho WHERE nome_localtra = '$nome_local'") or die(mysql_error());

if(mysql_num_rows($sqlVerlocal) >= 1){
echo '<script>alert("Local de trabalho já cadastrado. Tente novamente!")</script>';
}
elseif(empty($nome_local)){
echo '<script>alert("Preencha o nome do local de trabalho!")</script>';
}
else{
$sqlCadlocal = mysql_query("INSERT INTO localtrabalho (secretaria_idsecretaria, nome_localtra) VALUES('$rowsec[idsecretaria]','$nome_local')") or die(mysql_error());
}
}
?>

Bem, uma vez que seleciono a secretaria para cadastrar o local de trabalho no banco não é gravado o id da secretaria que eu escolhi. Ex.: A secretaria de saúde tem o id 2 no banco, quando cadastro um posto de saúde da família (PSF) selecionando a secretaria que será vinculado o PSF, não é gravado o id da secretaria no banco apenas grava o valor 0(zero). E isso se repete pra todos, sempre gravando 0(zero).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui galera.

O problema era que eu estava pegando o valor das variáveis dentro do option.
A solução foi pegar o valor do select. Ex:

Errado:

<select name='secreta'>
<?php
include "conexao.php";
$result= mysql_query ("SELECT idsecretaria, nome_sec FROM secretaria") or die ("não foi possivel fazer a pesquina no banco");
while ($rowsec = mysql_fetch_assoc($result))
{
echo ("<option value='$rowsec[idsecretaria]'>$rowsec[nome_sec]</option>");
}
?>
</select>
// eu pegava o valor de $rowsec[idsecretaria].

Correto:

<select name='secreta'>
<?php
include "conexao.php";
$result= mysql_query ("SELECT idsecretaria, nome_sec FROM secretaria") or die ("não foi possivel fazer a pesquina no banco");
while ($rowsec = mysql_fetch_assoc($result))
{
echo ("<option value='$rowsec[idsecretaria]'>$rowsec[nome_sec]</option>");
}
?>
</select>
// pegar o valor do <select> (<select name='secreta'>)

Fica a dica pra quem está com o mesmo drama.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai vai o exemplo:

<?php

$array_teste = array('00:00','00:30','01:00','01:30');

$valor_compara = '01:00';

echo '<select name="select" id="select">';
foreach($array_teste as $val){
    $sel = ($val == $valor_compara)?'selected="selected"':'';
    
    echo '<option value="'.$val.'" '.$sel.'>'.$val.'</option>';
}
echo '</select>';

?>
E aprenda a trabalhar com arrays, pois isso é o básico do básico.

 

Obrigado pela dica, fazia três dias que eu estava tentando fazer isso funcionar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá luissierra, seja bem-vindo!

Fico feliz que o post do amigo o tenha ajudado, mas cuide para não responder tópicos muito antigos.

Caso surjam novas dúvidas, não hesite em utilizar nossa busca ou criar um novo tópico para que o ajudemos.

Sugiro ainda que leia nossas regras.

[]'s!

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.