Jump to content

[Resolvido] Preencher combobox com sql query


Recommended Posts

Posted (edited)

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
Posted

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);

Posted

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 ).

Posted

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.

Posted

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.

Posted (edited)

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

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.