Jump to content
tmwh

[Resolvido] Preencher combobox com sql query

Recommended Posts

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>

Edited by yoda

Share this post


Link to post
Share on other sites
AJBM

Boas!

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

Share this post


Link to post
Share on other 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);

Share this post


Link to post
Share on other 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 ).

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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.

Edited by tmwh

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.