Ir para o conteúdo
tmwh

[Resolvido] Preencher combobox com sql query

Mensagens Recomendadas

tmwh

Boa noite.

Tenho um código para preencher uma combobox com uma query sql que funciona bem, ou seja, apresenta na combobox os valores pedidos. O problema está em não conseguir obter o valor escolhido "numero" para introduzir novamente em BD.

Tenho um script inserir_tempo.php:

<?php require_once('Connections/ligacao.php'); ?>
<?php
//RECEBE AS VARIAVEIS DO FORMULARIO
$numero=$_POST['numero'];
$horas=$_POST['horas'];
$minutos=$_POST['minutos'];
$segundos=$_POST['segundos'];
$time = $horas.":".$minutos.":".$segundos;

$sql = sprintf('UPDATE tabela SET tempo = "%s" WHERE numero = %s', $time, $numero);

$sql = mysql_query($sql);
?>

Tenho o form_tempo com a parte da combobox:

<form action="inserir_tempo.php" method="post" >
<label>
		 <select style="color:#FFFFFF;background-color:#000000">
			 <option>-----</option>
			 <?php
 $sql = "SELECT numero FROM tabela WHERE tempo = 0 ORDER BY numero ASC";
 $executar = mysql_query($sql) or die(mysql_error());
 while($reg = mysql_fetch_array($executar))
 {	
 ?>
			 <option value id="<?php $reg['id'];?>"><?php echo $reg['numero'];?></option>

			 <?php
 }
 ?>
		 </select>
		 </label>
<input name="inserir" type="submit" id="inserir" value="Inserir" />
		 </label>
</form>

Editado por yoda

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
tmwh

Boas!

No select da um name, e depois no inserir tempo pões $_POSt['o_nome_que_deste']

Boas.

Fiz como disseste mas obtive erro na ligação:

<label>
		    <select name="numero" style="color:#FFFFFF;background-color:#000000">
			  <option>-----</option>

Terá a ver com isto? $sql = sprintf('UPDATE tabela SET tempo = "%s" WHERE numero = %s', $time, $numero);

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
oxyzero

O problema está em mandares atualizar com valores que não existem.

Se definires o <select> com um name de: "numero", vais ter de definir para cada <option> um value, ou seja, é o valor da combobox, por exemplo "valorX".

Ou seja, depois de clicares no botão, vais ter uma variavel $_POST["numero"] que tem o valor de "valorX".

Neste momento, as tuas variaveis $numero, $horas, $minutos, $segundos e $time não têm valor.

Se esse $time significa o tempo atual, ou seja, quando é clicado o botão, tens de usar funções de PHP por exemplo para te dar esse valor. Por exemplo: date('H-i-s',time()); (mas não te esqueças que tens de definir o timezone, pesquisa mais aqui: http://php.net/manual/pt_BR/function.date.php ).

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
tmwh

Boas.

As variáveis existem e os valores tambem, eu apenas não coloquei o código completo para não tornar extenso.

Se utilizar uma combo normal com os numeros de 001 a 200 funciona bem apenas não consigo faze-lo quando faço o select para preencher a combo dos numeros. A variável "numero" está como text pois quero que fique "001" e nao apenas 1.

$numero=$_POST['numero']; Porque dizes que a variável $numero nao tem valor?

As variaveis de tempo sao criadas com combobox tambem.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
oxyzero

Boas.

As variáveis existem e os valores tambem, eu apenas não coloquei o código completo para não tornar extenso.

Se utilizar uma combo normal com os numeros de 001 a 200 funciona bem apenas não consigo faze-lo quando faço o select para preencher a combo dos numeros. A variável "numero" está como text pois quero que fique "001" e nao apenas 1.

$numero=$_POST['numero']; Porque dizes que a variável $numero nao tem valor?

As variaveis de tempo sao criadas com combobox tambem.

Eu estava a dizer que não tinha valores, porque a partir do código que forneceste não tinha informação para lhes dar valor.

$numero não tem valor porque não tinhas dado um name ao select, mas pelos vistos já deste.

Se o teu problema é a preencher a combo dos números, ou seja, fazer output deles para a combobox, eu diria que talvez fosse isto:

<option value="oTeuValor"  id="<?php $reg['id'];?>"><?php echo $reg['numero'];?></option>

oTeuValor é esse número que queres passar, ou seja, tens de substituir isso com a variável que tenha essa informação.

Porque pelo que percebi, o teu problema não está quando escreves a combobox, pois ela é desenhada corretamente, mas sim quando selecionas algo e envias.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
tmwh

Boas AJBM e oxyzero. Consegui resolver o problema. :) No select indiquei:

<select name="numero" id="numero" style="color:#FFFFFF;background-color:#000000">

e no option retirei o value que não indicava valor nenhum e talvez estivesse a criar confusão:

<option id="<?php $reg['id'];?>"><?php echo $reg['numero'];?></option>

Obrigado pelas dicas.

Editado por tmwh

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.