Jump to content
flavio_jeronimo

selecionar registo apos selecionar campo numa combobox

Recommended Posts

flavio_jeronimo

Boa tarde a todos apos criar uma combobox, que seleciona o registos de um determinado campo, eu preciso de a partir do registo que foi selecionado na combobox, apareça  todos os registos correspondente a essa linha, mas so quando faço check nesse naquele determinado registo.

O meu codigo da minha combobox é que ja seleciona o registo:

<?php 

$host="webhost.com"; // Nome do Host 
$username="Flavio"; // Mysql username
$password="blblbl"; // Mysql password
$db_name="Jeronim"; // nome da Database 
$tbl_name="cinema"; // nome da tabela

// Conecta ao server e seleciona a database.

mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
?>

<?php

$res = mysql_query ("SELECT * FROM cinema ");
$num=mysql_num_rows($res);


?>
<select size="1" name="D1">
<option selected value="Selecione">selecione algum dos espetaculos disponiveis</option>

<?php
for ($i=0;$i<$num;$i++){
$data =mysql_fetch_array($res);
?>
<option  value="<?php echo $i;?>">
<?php echo $data['nomedoespetaculo']; ?>

</option>

<?php
}
?>
</select>

obrigado e cumps

Share this post


Link to post
Share on other sites
brunoais

1º: O que é que é uma combo box?


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
ruimcosta

Brunoais:

1º: O que é que é uma combo box?

combobox no html é o <select></select>.

Em relação ao topico inicial, podes fazer de 2 formas:

1ª inseres o codigo dentro de um <form></form>, crias um botao do tipo <input type="submit" value="prosseguir" /> e na página seguinte seleccionas os registos mediante o valor de $_POST['D1'];

2ª Utilizas Jquery para fazer exactamente a mesma coisa mas sem teres necessidade de fazer o reload à página. Respondi a um tópico mais ou menos semelhante há cerca de duas semanas. Deixa ver qual foi o tópico e já te mostro.

Cá está: http://www.portugal-a-programar.pt/index.php?showtopic=39377


Abraços e beijinhos,Rui Costa

Share this post


Link to post
Share on other sites
flavio_jeronimo

Pois eu ja tinha pensado em fazer um botão, mas a minha duvida é como seleccionar os registos mediante o valor de $_POST['D1']?

quem me conseguir ajudar agradeço desde ja.

cumprimentos

Share this post


Link to post
Share on other sites
ruimcosta

ok. Imagina que na <select> vais mostrar marcas de carros:

1 - Fiat

2 - Mercedew

3 - Bmw

o número é o ID do registo na BD e o correspondente texto.

<select name="d1">
<option value="1">Fiat</option>
<option value="2">Mercedes</option>
<option value="3">BMW</option></select>

Após a escolha e submissão do formulário capturas o ID com $carro = $_POST['d1'];

Depois fazes o que quiseres....

switch( $carro ){
     case 1;
         echo "Fiat";
         break;
     case 2;
         echo "Mercedes";
         break;
     case 3;
         echo "BMW";
         break;
     

Ou inseres numa tabela, ou obtens os respectivos modelos e crias outra select....The sky is the limit.


Abraços e beijinhos,Rui Costa

Share this post


Link to post
Share on other sites
flavio_jeronimo

Boas eu tou a usar o seguinte script:

<?php 

$host="webhost.com"; // Nome do Host 
$username="aFlavio"; // Mysql username
$password="blabla"; // Mysql password
$db_name="Jeronim"; // nome da Database 
$tbl_name="cinema"; // nome da tabela

// Conecta ao server e seleciona a database.

mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
?>

<?php


?>

<form id="spec" name="spec" method="post" action="">
<select name="d1">
<option value="1">galinhas</option>
<option value="2">bodes</option>
</select>

<input type="submit" name= "pok"value="Obter informações" />
</select>

</form>

<?php 
header("location:fechar.php")

?>

Mas o que se passa e que esta parte do script não funciona:

<?php 
$carro = $_POST['d1'];
echo "ta ceto";
switch($carro){
  case 1;
       echo "Fiat";
       break;
     case 2;
       echo "Mercedes";
         break;
     ?>

Share this post


Link to post
Share on other sites
nosha

Boa Noite,

No action tens k colocar o php que vai receber os valores do post.

<form id="spec" name="spec" method="post" action="FICHEIRO:PHP">

Espero ter ajudado.

Cmpts

Share this post


Link to post
Share on other sites
flavio_jeronimo

o problema nao esta ai esta  neste codigo:

<?php
$carro = $_POST['d1'];
echo "ta ceto";
switch($carro){
  case 1;
       echo "Fiat";
       break;
     case 2;
       echo "Mercedes";
         break;
     ?>

Share this post


Link to post
Share on other sites
nosha

O problema esta no action, experimenta no action do formulario colocares o nome do ficheiro php que contem este código:

<?php
$carro = $_POST['d1'];
echo "ta ceto";
switch($carro){
  case 1;
       echo "Fiat";
       break;
     case 2;
       echo "Mercedes";
         break;
     ?>

O teu formulário como está não faz rigorosamente nada pois após seleccionares as combos os valores seleccionados não estão a ser enviados para nenhum php para serem processados.

Share this post


Link to post
Share on other sites
flavio_jeronimo

obrigado o problema era só umas chavetas, eu tenho o codigo onde tenho a form:

<?php 

$host="webhost.com"; // Nome do Host 
$username="Flavio"; // Mysql username
$password="blblaa"; // Mysql password
$db_name="jeronim"; // nome da Database 
$tbl_name="cinema"; // nome da tabel

// Conecta ao server e seleciona a database.

mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
?>

<?php
//se for rquisitado o botao com o nome reg
if($_REQUEST['pok']){ 
//vai usar o script de funçoes para restriçoes de formulario 
require ("fechar.php");

}
?>
<form id="spec" name="spec" method="post" action="">
<select name="d1">
<option value="1">galinhas</option>
<option value="2">bodes</option>
</select>

<input type="submit" name= "pok"value="Obter informações" />
</select>

</form>

mas disseram acima para usar um case só que o problema esta quando eu faço a query a bd aparece nos 2 campos da combobox o primeiro registo apenas em vez de ir pelos id.

o código e o seguinte:

<?php 

$host="webhost.com"; // Nome do Host 
$username="Flavio"; // Mysql username
$password="blblaa"; // Mysql password
$db_name="jeronim"; // nome da Database 
$tbl_name="cinema"; // nome da tabela

// Conecta ao server e seleciona a database.

mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
?>
<?php

$res = mysql_query ("SELECT * FROM cinema ");
$num=mysql_num_rows($res);
?>
<?php 
$data =mysql_fetch_array($res);
$carro = $_POST['d1'];

switch($carro){
  case 1;
       echo "Nome do Espetaculo: ".$data['nomedoespetaculo']." / Dispomos de: ".$data['lugaresdips'].", lugares / Realiza-se em: ".$data['datadoespetaculo']. 
   " / Local do espetaculo: ".$data['saladeespetaculo']. " / Morada: ".$data['Morada']. " / Localidade: ".$data['local']. " / Genero: ".$data['Genero'];
       break;
     case 2;
           echo  "Nome do Espetaculo: ".$data['nomedoespetaculo']." / Dispomos de: ".$data['lugaresdips'].", lugares / Realiza-se em: ".$data['datadoespetaculo']. 
   " / Local do espetaculo: ".$data['saladeespetaculo']. " / Morada: ".$data['Morada']. " / Localidade: ".$data['local']. " / Genero: ".$data['Genero'];
         break;
	 }
?>

Podem testar aqui:http://projecto.net84.net/site/index.php?pag=espetaculos

Share this post


Link to post
Share on other sites
ruimcosta

Esta linha: $data = mysql_fetch_array($res);

apenas retorna o 1º registo, se queres percorrer todos os registos que o SQL retorna tens de o inserir num ciclo:

while( $data = mysql_fetch_array($res) ){
    echo $data['teu_campo']."<br />";
}


Abraços e beijinhos,Rui Costa

Share this post


Link to post
Share on other sites
flavio_jeronimo

pois mas eu não quero retornar todos os registos, quero que quando escolho um campo na combobox só vá buscar o registo respectivo a esse nome e não a todos. se conseguires ajudar agradeço.

obrigado e cumps

Share this post


Link to post
Share on other sites
ruimcosta

Bom larga então a programaçao:

Tenho de escolher um valor da zselect> para depois seleccionar um valor correspondente na BD ?


Abraços e beijinhos,Rui Costa

Share this post


Link to post
Share on other sites
flavio_jeronimo

A minha duvida e simples e básica neste tópico mais a cima disseste "o número é o ID do registo na BD e o correspondente texto." e mostraste este codigo:

<select name="d1">
<option value="1">Fiat</option>
<option value="2">Mercedes</option>
<option value="3">BMW</option></select>

eu criei um parecido mas o problema esta segundo o que tu disseste que quando iria declarar o value =1 isto iria associar ao campo da minha base de dados com o id 1? e assim sucessivamente certo?

então não percebo como eu faço uma query na minha bd e para os 2 campos da combobox da o mesmo resultado deveria apresentar apenas o resultado do registo certo daquele id?

os codigos sao:

<?php

$host="webhost.com"; // Nome do Host
$username="Flavio"; // Mysql username
$password="blblaa"; // Mysql password
$db_name="jeronim"; // nome da Database
$tbl_name="cinema"; // nome da tabel

// Conecta ao server e seleciona a database.

mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
?>

<?php
//se for rquisitado o botao com o nome reg
if($_REQUEST['pok']){
//vai usar o script de funçoes para restriçoes de formulario
require ("fechar.php");

}
?>
<form id="spec" name="spec" method="post" action="">
<select name="d1">
<option value="1">galinhas</option>
<option value="2">bodes</option>
</select>

<input type="submit" name= "pok"value="Obter informações" />
</select>

</form>

<?php

$host="webhost.com"; // Nome do Host
$username="Flavio"; // Mysql username
$password="blblaa"; // Mysql password
$db_name="jeronim"; // nome da Database
$tbl_name="cinema"; // nome da tabela

// Conecta ao server e seleciona a database.

mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
?>
<?php

$res = mysql_query ("SELECT * FROM cinema ");
$num=mysql_num_rows($res);
?>
<?php
$data =mysql_fetch_array($res);
$carro = $_POST['d1'];

switch($carro){
  case 1;
       echo "Nome do Espetaculo: ".$data['nomedoespetaculo']." / Dispomos de: ".$data['lugaresdips'].", lugares / Realiza-se em: ".$data['datadoespetaculo'].
           " / Local do espetaculo: ".$data['saladeespetaculo']. " / Morada: ".$data['Morada']. " / Localidade: ".$data['local']. " / Genero: ".$data['Genero'];
       break;
     case 2;
           echo  "Nome do Espetaculo: ".$data['nomedoespetaculo']." / Dispomos de: ".$data['lugaresdips'].", lugares / Realiza-se em: ".$data['datadoespetaculo'].
           " / Local do espetaculo: ".$data['saladeespetaculo']. " / Morada: ".$data['Morada']. " / Localidade: ".$data['local']. " / Genero: ".$data['Genero'];
         break;
                 }
?>

Share this post


Link to post
Share on other sites
ruimcosta

Agora vou ate casa e quando la chegar vejo com mais calma.

Faz um debug:

nesta linha: $carro = $_POST['d1'];

mete

$carro = $_POST['d1'];

echo $carro;
exit;

E faz a selecçao de valores e submete em nos vários valores para ver se muda....teria de mudar


Abraços e beijinhos,Rui Costa

Share this post


Link to post
Share on other sites
flavio_jeronimo

E definitivamente muda, muda para 1 e 2, o problema deve estar no case ou na query.

<?php

$res = mysql_query ("SELECT * FROM cinema ");
$num=mysql_num_rows($res);
?>
<?php
$data =mysql_fetch_array($res);
$carro = $_POST['d1'];

switch($carro){
  case 1;
       echo "Nome do Espetaculo: ".$data['nomedoespetaculo']." / Dispomos de: ".$data['lugaresdips'].", lugares / Realiza-se em: ".$data['datadoespetaculo'].
           " / Local do espetaculo: ".$data['saladeespetaculo']. " / Morada: ".$data['Morada']. " / Localidade: ".$data['local']. " / Genero: ".$data['Genero'];
       break;
     case 2;
           echo  "Nome do Espetaculo: ".$data['nomedoespetaculo']." / Dispomos de: ".$data['lugaresdips'].", lugares / Realiza-se em: ".$data['datadoespetaculo'].
           " / Local do espetaculo: ".$data['saladeespetaculo']. " / Morada: ".$data['Morada']. " / Localidade: ".$data['local']. " / Genero: ".$data['Genero'];
         break;
                 }
?>

Share this post


Link to post
Share on other sites
ruimcosta

Poe case "1" e não case 1

o 1 fora de aspas será boolean (true/false) dentro de aspas será uma string.

O mesmo para o 2... case "2"


Abraços e beijinhos,Rui Costa

Share this post


Link to post
Share on other sites
flavio_jeronimo

Ja meti as aspas e continua com o mesmo problema.

obrigado e cumps

Share this post


Link to post
Share on other sites
ruimcosta

isto funciona:

<?php

if( $_SERVER['REQUEST_METHOD'] == "POST" ){
    $op = $_POST['d1'];
    
    switch( $op ){
        case "1";
            echo "Opção: ".$op." Isto é bom";
            break;
        case "2";
            echo "Opção: ".$op." Isto é mau";
            break;
        case "3";
            echo "Opção: ".$op." Isto é mto bom";
            break;
        case "4";
            echo "Opção: ".$op." Isto é mto mau";
            break;
        case "5";
            echo "Opção: ".$op." Isto é excelente";
            break;
        case "6";
            echo "Opção: ".$op." Isto é péssimo";
            break;                                                

    }
}


?>

<form action="select.php" method="post">
<div>Escolhe</div>
<select name="d1">
    <option value="1">Opção 1</option>
    <option value="2">Opção 2</option>
    <option value="3">Opção 3</option>
    <option value="4">Opção 4</option>
    <option value="5">Opção 5</option>
    <option value="6">Opção 6</option>
</select>

<input type="submit" value="Enviar" />

</form>


Abraços e beijinhos,Rui Costa

Share this post


Link to post
Share on other sites
flavio_jeronimo

O codigo deveria associar o value 2 ao id 2 da base de dados certo? e que isto nao o faz.

o codigo esta da seguinte forma:

<?php

$host="webhost.com"; // Nome do Host
$username="Flavio"; // Mysql username
$password="blblaa"; // Mysql password
$db_name="jeronim"; // nome da Database
$tbl_name="cinema"; // nome da tabel

// Conecta ao server e seleciona a database.

mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
?>
<?php

$res = mysql_query ("SELECT * FROM cinema ");
$num=mysql_num_rows($res);
$data = mysql_fetch_array($res);
?>
<?php 
if( $_SERVER['REQUEST_METHOD'] == "POST" ){
    $op = $_POST['d1'];
   
    switch( $op ){
        case "1";
            echo "Opção: ".$op." Nome do Espetaculo: ".$data['nomedoespetaculo'];
            break;
        case "2";
            echo "Opção: ".$op." Isto é mau".$data['nomedoespetaculo'];
            break;
                     

    }
}


?>

<form action="" method="post">
<div>Escolhe</div>
<select name="d1">
    <option value="1">galinhas</option>
    <option value="2">bodes</option>
</select>

<input type="submit" value="Enviar" />

</form>

Share this post


Link to post
Share on other sites
ruimcosta

1 mês depois percebi o problema  :cheesygrin: :wallbash:

qd seleccionas e submetes, se queres is buscar a base de dados alguma informação correspondente a esse ID, fazes o seguinte:

<?php 
if( $_SERVER['REQUEST_METHOD'] == "POST" ){
    $op = $_POST['d1'];
    $res = mysql_query ("SELECT nomedoespetaculo FROM cinema where id='$op');
    
    if( mysql_num_rows($res) > 0 ){
          $data = mysql_fetch_array($res);
          echo "Opção: ".$op." Nome do Espetaculo: ".$data['nomedoespetaculo'];
    }
}


?>


Abraços e beijinhos,Rui Costa

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.