• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Gon_17

Actualizar Combobox

10 mensagens neste tópico

Boas, estou com uma grande dúvida que necessitava de ser resolvida para eu concluir o meu estágio (Técnico de Informática). O que se passa é o seguinte: estou a fazer umas páginas em HTML com código PHP com ligação a uma base de dados em MYSQL. Tenho várias tabelas e uma página de registo para cada uma. Depois na página de registo mais importante existem alguns campos que estão relacionados com as outras tabelas, por exemplo, tenho as tabelas: software, marca e lingua. Para registar um novo software, preciso de escolher uma marca e uma língua, numa combobox (que vai buscar os dados às tabelas marca e lingua). O problema é que apenas sei em HTML inserir o código para mostrar os dados que eu quero na combobox, mas preciso do código para as actualizar, pois não se vai estar sempre a inserir à lá pata cada vez que registamos uma nova marca e nova língua. Se alguém me puder ajudar agradecia!!!!!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu ja implementei algo parecido

tenta adaptar para ti

if(isset($_POST['page'])){
				$sql = 'select distinct texto_pagina from textos where texto_pagina like "'.$_POST['page'].'%"';
				$result=get_result($sql);
				echo '
					<form name="form_page" method="post" action="textos.php">
						<label>Texto: </label>
						<input type="hidden" name="page" value="'.$_POST['page'].'"></input>
						<select onchange=submit() name="text_page">
						<option disabled="disabled"';
				if(!isset($_POST['text_page'])) echo' selected="selected"';
			echo'
					> ---------------------- </option>';
				while($val=mysql_fetch_array($result)){
					echo '
							<option';
					if(isset($_POST['text_page'])&&$_POST['text_page']==$val['texto_pagina']) echo' selected="selected"';
						echo'
									> '.$val['texto_pagina'].' </option>
					';
				}
				echo'
						</select>
					</form><br />';
			}

@Skin adicionado GeSHi

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas, sinceramente não percebi muito desse código. :eek:  Se me pudesses explicar o que faz cada linha, por exemplo, agradecia imenso, pois assim já saberia como adaptar para o meu!!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas, pessoal, ao fim de algum tempo e depois de pesquisar sobre o assunto e ao fim de encontrar várias alternativas para isto funcionar, o seguinte código foi o que mais se aproximou do resultado desejado:

<php
<html>
<head>
<title>:: ACTUALIZAR COMBOBOX ::</title>
</head>
<body>
<?php
$conexao = mysql_connect("localhost", "root", "PASS") or die("Não foi possível conectar ao bd");
mysql_select_db("BD", $conexao) or die("Não foi possível selecionar o bd");

$sql = "select * from TABELA order by CAMPO_TABELA";
$tabela = mysql_query("select * from TABELA");
$linhas = mysql_num_rows($tabela);
if($linhas==0)
{
echo "<script>alert('Nenhum registro foi encontrado');</script>";
}
else
{
?>
<form method="get" action="resultado.php">
<table>
<select name="estado">
<?php
for($x=0; $x<$linhas; $x++)
{
$id = mysql_result($tabela,$x,'id');
$uf = mysql_result($tabela,$x,'ufs');
?>
<option value="<?=$id?>"><?=$uf?></option>
<?php
}
?>
<input type="submit" name="enviar" value="Enviar" />
</select>
</table>
</form>
<?php
}
mysql_close($conexao);
?>
</body>
</html>

Com este código, a combo box reconhece quantos dados estão inseridos na tabela, mas não os mostra. Se alguém souber o que se passa ou quiser experimentar para verificar, agradeço!!!! :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Realmente para um fórum de programação, onde vejo montes de users, a entre-ajuda não me parece muito ...

Contudo, vou-te ajudar mediante aquilo que sei, tenta com este código:

<?php
$ligax = mysql_connect('localhost','root','PASSWORD') or die("Falha na ligação com o MySql");
mysql_select_db('BASE DE DADOS') or die("Falha na ligação com a base de dados");
$combo2 = "CONSULTA A TABELA";
$result2 = mysql_query($combo2);
?>

<select name="VARIAVEL">
<?php
while($l = mysql_fetch_array($result2)) {
$user2 = $l["VARIAVEL"];
$user3 = $l["VARIAVEL2"];
echo "<option value=".$user2.">".$user3."</option>\n"; } ?>

Abraço.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas, peço desculpa pela demora mas o que pretendes é algo do género

$query = "SELECT marca FROM marcas";
$doQuery =  mysql_query($query);

echo "<select>";
while($row =  mysql_fetch_row($doQuery))
{
    echo "<option>$row[0]</option>";
}
echo "</select>";

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Realmente para um fórum de programação, onde vejo montes de users, a entre-ajuda não me parece muito ...

Entre-ajuda é uma coisa.... dar códigos prontos com a solução é outra. Ainda para mais uma coisa tão simples como esta.

Boas, peço desculpa pela demora mas o que pretendes é algo do género

Pelo que entendi do post original, acho que não é isso que ele quer.

Não vou dar o código feito, mas vou-te indicar os passos:

-> Precisas de criar a primeira Query para a primeira ComboBox, em que tens de colocar o value de cada option com o id do registo

-> Testas a ver se o formulário já foi submetido com a variável da primeira Combobox

--> Se já tiver sido submetido utilizas o id que foi passado e fazes uma segunda Query para a segunda ComboBox

-> Preenches as ComboBox's com as respectivas query's

Esta solução é válida para a quantidade de ComboBox's que queiras ver implementadas... desde que estejas a utilizar Foreign keys para interligar tabelas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Realmente para um fórum de programação, onde vejo montes de users, a entre-ajuda não me parece muito ...
Entre-ajuda é uma coisa.... dar códigos prontos com a solução é outra. Ainda para mais uma coisa tão simples como esta.

Hmm.. Se achas que isto é uma cena assim tão simples.. mas tamem nao és capaz de dar o código.. eu tamem sei qual é o objectivo e o que se tem de fazer +/- .. mas depois em código a coisa é outra.

Em relação ao código cedido pelo Amorim, tenho que agradecer, pois esse código era mesmo o que precisavamos.

Só para salientar que eu sou colega do Gon17 no estágio e estavamos ambos a tentar resolver o mesmo problema.. Obrigado Amorim mais uma vez. E obrigado também Gurzi pela atenção, e tentativa de ajuda. :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

bom há uma coisa a salientar, não estamos aqui para chatear ninguem, mas tambem não estamos para fazer o trabalho dos outros. não sou o melhor dos programadores alias longe disso, mas uma coisa é certa com a orientação certa e com a ajuda do site oficial de php consigo chegar la com relativa facilidade. é pa sou da opinião de que uma ajuda é bem vinda mas codigo feito so da chatices na escola. até porque não sei se tas com ideias de ir para a faculdade mas acredita que la codigo dos outros não ajuda muito, convem saber interpretar o codigo que vais defender.

fica bem

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Entre-ajuda é uma coisa.... dar códigos prontos com a solução é outra. Ainda para mais uma coisa tão simples como esta.

Compreendo o que queres dizer, e eu também não estou aqui para levantar ondas, simplesmente verifiquei que ele já tinha feito um double-post a pedir ajuda, a falar da mesma questão, que não percebeu nada do que lhe disseram, ninguem veio explicar e apenas fiz uma constactação do óbvio ...

Curiosamente, quando eu venho falar, logo de seguida aparecem mais 2 ou 3, o que não é mau, muito pelo contrário ...

bom há uma coisa a salientar, não estamos aqui para chatear ninguem, mas tambem não estamos para fazer o trabalho dos outros. não sou o melhor dos programadores alias longe disso, mas uma coisa é certa com a orientação certa e com a ajuda do site oficial de php consigo chegar la com relativa facilidade. é pa sou da opinião de que uma ajuda é bem vinda mas codigo feito so da chatices na escola. até porque não sei se tas com ideias de ir para a faculdade mas acredita que la codigo dos outros não ajuda muito, convem saber interpretar o codigo que vais defender.

Nem eu sou dos melhores programadores, nem quero arranjar confusões, nem seja o que for, mas eu apenas fiz uma constactação e quem quer que venha e leia, chega à mesma conclusão que eu ... no entanto, após eu falar já vieram mais opiniões, códigos, seja o que for .. o que é positivo.

;) Boa programação para todos e foi um prazer ajudar !!!

0

Partilhar esta mensagem


Link 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