Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lost Dark

[Resolvido] Combobox dinâmico

Recommended Posts

Olá a todos preciso de uma ajuda na seguinte questão.

 

tenho a seguinte tabela

 

 

|tec_id|tec_nome|tec_empreiteira|tec_telefone|

|1 |Jose |empresa1 |11-55558888 |

*______*________*_______________*____________*

|2 |Joey |empresa2 |11-44443333 |

*______*________*_______________*____________*

|3 |Irlan |empresa1 |11-22223333 |

*______*________*_______________*____________*

|4 |Josue |empresa2 |11-33330000 |

*______*________*_______________*____________*

|5 |Jeremias|empresa3 |11-52859632 |

*______*________*_______________*____________*

|6 |Goku |empresa2 |11-45789632 |

*______*________*_______________*____________*

|7 |Gohan |empresa3 |11-52639685 |

*______*________*_______________*____________*

 

Eu tenho o seguinte script PHP que faz um combobox para retornar apenas o nome dos tec no combobox

 

<?php

$con = mysql_connect("localhost","root","senha");

$db = mysql_select_db("banco");

$sql_tec = "SELECT * FROM tecnicos ORDER BY tec_nome ASC";

$query_tec = mysql_query($sql_tec, $con);

echo "<select name='nome_tecnico'>";
echo "<option value =''>Selecione um técnico</option>";
while($dados = mysql_fetch_array($query_tec))
{
   //mostrando eles (dados) em forma de options

echo "<option value ='".$dados['tec_nome']."' >";
echo "".$dados['tec_nome']."";
echo" </option>";

}
echo "</select>";

?>

 

Meu problema esta na seguinte questão eu não sei como fazer para quando selecionar por exemplo o tecnico 1 mostra as informações

referentes ao tecnico conforme o banco

 

exemplo

 

Combobox

 

jose

 

quero mostrar a informações da linha dele em uma div para cada campo

 

<div>tec_empreiteira</div> <div>tec_telefone</div>

 

 

alguém pode me ajudar!?

Compartilhar este post


Link para o post
Compartilhar em outros sites

3 opcoes para voce

utilizar AJAX para recuperar os resultados de acordo com o tecnico selecionado

 

OU

 

voce pode gerar um input do tipo hidden para cada tecnico com as informacoes, e com javascript de acordo com o tecnico selecionado voce exibe essas informações

 

OU

 

voce pode colocar o select dentro de um form e o action para a propria pagina e pega os dados por get ou post e usa essas informações para exibir as informações do tecnico

 

ai voce escolhe o que fica melhor para voce e faz a implementação, e o que voce nao souber agente tenta te ajudar.

 

flws

Compartilhar este post


Link para o post
Compartilhar em outros sites

Será que estou no caminho certo

 

<html>
<head>
<title></title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
</head>

<body>

<script type="text/javascript">

     $(document).ready(function(){

        $("select[name=nome_tecnico]").change(function(){
           $("#tec_empreiteira").html('Carregando...');

           $.post("rer.php", 
                 {tecnicos:$(this).val()},
                 function(valor){
                    $("#tec_empreiteira").html(valor);
                 }
                 )

        })
     })

</script>

<?php

$con = mysql_connect("localhost","root","isma*2008");

$db = mysql_select_db("backoffic");

$sql_tec = "SELECT * FROM tecnicos ORDER BY tec_nome ASC";

$query_tec = mysql_query($sql_tec, $con);
?>
<form method="post" action="rer.php">

<?php
echo "<select name='nome_tecnico'>";
echo "<option value =''>Selecione um técnico</option>";
while($dados = mysql_fetch_array($query_tec))
{
   //mostrando eles (dados) em forma de options

echo "<option value ='".$dados['tec_nome']."' >";
echo "".$dados['tec_nome']."";
echo" </option>";

}
echo "</select>";

?>
</form>

<div id="tec_empreiteira"></div>

<div id="tec_telefone"></div>


</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

é isso mesmo, é que eu nao sei como esta o seu "rer.php" mas voce pode retornar as DIVs ja com os valores, tipo

 

isso no "rer.php"

echo "<div id=\"tec_empreiteira\">".$resultado_bd['nome_campo']."</div>

echo "<div id=\"tec_telefone\">".$resultado_bd['nome_campo']."</div>

 

ai este vai ser sua resposta do ajax, dai é so pegar isso e jogar dentro de algum lugar na pagina, uma DIV, P etc...

 

se nao entendeu direito posta ai o "rer.php" que eu explico melhor

 

flws

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse $.post é do jquery para requisitar uma pagina com AJAX e enviar os dados via POST certo ?

 

Caso seja isso voce nao pode(na verdade pode, mas depende muito da implementacao) chamar a propria pagina na requisicao ajax, essa pagina entao fica desse jeito mesmo.

 

Agora voce precisa criar uma outra pagina que vai receber os dados do AJAX e procurar procurar pelo tecnico selecionado no select, no seu caso esta sendo pelo nome, mas poderia ser pelo id, email, ou qualquer outro campo que idenfique o tecnico.

 

Ai é so criar a resposta seguindo o que eu falei antes, mas nao precisa colocar as tags <html><head>.... por que senao senao vai repetir tudo e nao é muito bom.

 

um exemplo simples

 

"rer.php" voce mantem do jeito que esta.

 

"pagina_que_voce_criar.php"

<?php
$con = mysql_connect("localhost","root","isma*2008");
$db = mysql_select_db("backoffic");

$sql_tec = "SELECT * FROM tecnicos WHERE tec_nome = " $_POST['nome_tecnico'];
$query_tec = mysql_query($sql_tec, $con);
$dados = mysql_fetch_array($query_tec);

echo "<div id=\"tec_empreiteira\">".$dados['tec_empreiteira']."</div>
echo "<div id=\"tec_telefone\">".$dados['tec_telefone']."</div>
?>

 

acho que é isso flws

Compartilhar este post


Link para o post
Compartilhar em outros sites

Iae cara obrigado pela ajuda fiz o que me pediu mais não está acontecendo nada fiz um if pra ver se o $_POST retornava alguma coisa mais nada olha ai

 

 

<html>
<head>
       <title></title>
       <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
</head>

<body>

<script type="text/javascript">

     $(document).ready(function(){

        $("select[name=nome_tecnico]").change(function(){
           $("#tec_empreiteira").html('Carregando...');

           $.post("ajax.php", 
                 {name_tecnico:$(this).val()},
                 function(valor){
                    $("#tec_empreiteira").html(valor);
                 }
                 )

        })
     })

</script>

<?php

$con = mysql_connect("localhost","root","");

$db = mysql_select_db("backoffic");

$sql_tec = "SELECT * FROM tecnicos ORDER BY tec_nome ASC";

$query_tec = mysql_query($sql_tec, $con);
?>
<form method="post" action="">
<select name="nome_tecnico">
<?php
        echo "<option value =''>Selecione um técnico</option>";
while($dados = mysql_fetch_array($query_tec))
{
   //mostrando eles (dados) em forma de options

       echo "<option value ='".$dados['tec_id']."' >";
       echo "".$dados['tec_nome']."";
       echo" </option>";

}
       echo "</select>";

?>
</form>

       <div id="tec_empreiteira"></div>

       <div id="tec_telefone"></div>


</body>
</html>

<?php
$con = mysql_connect("localhost","root","");
$db = mysql_select_db("backoffic");

$tec_nome = isset($_POST['nome_tecnico']);

if($tec_nome == ''){
echo "Alerta";
}

$sql_tec = "SELECT * FROM tecnicos WHERE tec_nome = '$tec_nome' ";
$query_tec = mysql_query($sql_tec, $con);
$dados = mysql_fetch_array($query_tec);

echo "<div id='tec_empreiteira'>"  .$dados['tec_empreiteira'].  "</div>";
echo "<div id='tec_telefone'>".$dados['tec_telefone']."</div>";
?>

 

A sempre retornar Alert que quer dizer que está faziO!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sem usar AJAX, escondendo os dados em um div invisível para mostrá-los apenas quando um 'técnico' for selecionado.

 

<?php

$con = mysql_connect("localhost","root","");
$db = mysql_select_db("backoffic");

$sql_tec = "SELECT * FROM tecnicos ORDER BY tec_nome ASC";

$query_tec = mysql_query($sql_tec, $con);


while($dados = mysql_fetch_array($query_tec))
{
$tec_ids		[]= $dados['tec_id'];
$tec_nomes		[]= $dados['tec_nome'];
$tec_empreiteiras	[]= $dados['tec_empreiteira'];
$tec_telefones		[]= $dados['tec_telefone'];
}


?>

<html>
<head>
       <title></title>
       <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
</head>

<body>

   <form method="post" action="">
       <select name="nome_tecnico">
       	<option value =''>Selecione um técnico</option>
           <?php for($i = 0; $i < count($tec_nomes); $i++) { ?>
           <option value ='<?php echo $tec_ids[$i]; ?>' >
   	    	<?php echo $tec_nomes[$i]; ?>
        </option>
           <?php } ?>

       </select>

   </form>

<div id="tecinfo" style="display:none">
	<?php for($i = 0; $i < count($tec_nomes); $i++) { ?>
   	<span id="<?php echo $tec_ids[$i]; ?>">
		<span class="telefone"><?php echo $tec_telefones[$i]; ?></span>
       	<span class="empreteira"><?php echo $tec_empreiteiras[$i]; ?></span>
       </span>
	<?php } ?>
   </div>

       <div id="tec_empreiteira"></div>

       <div id="tec_telefone"></div>





<script type="text/javascript">

     $(document).ready(function(){

        $("select[name=nome_tecnico]").change(function(){
		var tec_id = $("select[name=nome_tecnico] option:selected").attr('value');

           $('#tec_empreiteira').text( $('#tecinfo #'+tec_id+' .empreteira').text() );
		$('#tec_telefone').text( $('#tecinfo #'+tec_id+' .telefone').text() );

        })
     })

</script>

</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

@mangakah

 

Muito obrigado não passava pela minha cabeça essa reolução!!

Assim eu pouco o servidor de um simples consulta !!

Obrigado mesmo e desculpa minha burrice!!

bora estudar mais!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.