Ir para conteúdo

POWERED BY:

Arquivado

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

Dieos

[Resolvido] ListMenu e texfild vindos do banco

Recommended Posts

olá,

 

já tentei de tudo to quase indo na macumba pra ve se roda...

 

é o seguinte tenho um formulario on o usuario entra com um valor (numerico) e faz-se uma consulta ao banco e o valor retornado preenche alguns text field,

 

até aqui tudo na santa paz,

 

logo abaixo vem um listmenu, que recebe seus dados do campo t_Nome da tabela terminal de acordo com o codgo que ele digitou anteriormente no form,

 

até aqui tb ta tranquilo ele ta fazendo, o problema é que logo abaixo ele tem que preencher outros textfield de acordo com os dados da tabela terminal só que dessa vez sendo filtrado pelo nome que for escolido no listmenu.

 

William Bruno,

 

tentei varios codigos seus, ate refiz uma pagina teste para tentar rodar so o que vecê postou em ajax, ele carrega os dados vindo do banco mas não passa para as textfile, ou seja o JSON não funciona tentei também uma outra que você postou que o retorno vai para um outro box dependente, mas não funciona,

 

estou desenvolvendo em PHP no dreamweaver cs4, não sei se tem alguma coisa haver.

 

segue os codigos,

 

 

index.php

<div id="Layer4">
//aqui ta tudo tranquilo ele faz a consulta e retorna os dados do banco
  <form action="ag_valida.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
    <p>Dados da Agencia     </p>
  <p>Codigo<span id="sprytextfield1">
      <input name="agencia" type="text" id="agencia" value="<?php echo $_SESSION['agenciaCode']; ?>" size="5" maxlength="3" />
    </span>
      <label>
  <input name="ok" type="submit" id="ok" value="OK" />
</label>  
    Nome
    <input name="nome_agencia" type="text" disabled="disabled" id="nome_agencia" value=" <?php echo $_SESSION['agenciaNome']; ?>" />
    <label> 
    <input type="submit" name="Submit" value="PServe" />
    <input type="submit" name="Submit2" value="PRot" />
    <input type="submit" name="Submit3" value="VNC" />
    <br />
    <br />
    Circuito
    <input name="circuito" type="text" disabled="disabled" id="circuito" value="<?php echo $_SESSION['agenciaCircu']; ?> " size="22" readonly="readonly" />
    <br />
    <br />
    Telefone 
    <input name="telefone" type="text" disabled="disabled" id="telefone" value="<?php echo $_SESSION['agenciaTel']; ?> " size="16" />
     Ramal
     <input name="textfield2" type="text" disabled="disabled" value="<?php echo $_SESSION['agenciaRamal']; ?> " size="18" />
    </label>  
    <label>Fax
    <input name="textfield3" type="text" disabled="disabled" value="<?php echo $_SESSION['agenciaFax']; ?>" size="10" />
    </label>
  <p>
//aqui é o listmenu funcionando
      <label>
        <select name="terminal" id="terminal">
         <option value="">Terminal</option>
       <?php
	            include ('ag_valida.php');
         echo montaSelect();
	  ?>   
          
        </select>
        <br />
        <br />
      </label>
   //aqui são os textfild que irão receber os dados da tabela de acordo com o listmenu
      <label>
        UNIDADE:</label>
         <input name="t_Unidade" type="text" disabled="disabled" id="UNIDADE" value="<?php echo $_SESSION['teste']; ?>"/>
      
      <label>COD.:</label>
      <input name="COD" type="text" disabled="disabled" id="textfield2" value="<?php echo "$t"; ?>" />
    <p>
      <label>
        TIPO:
      </label>          	
          <input name="TIPO" type="text" disabled="disabled" id="textfield3" value"" />
      <label>UF:</label>
      <input name="UF" type="text" disabled="disabled" id="textfield4" value"" />
    <p>
      <label>
        SUPERINTEND.:</label>
        <input name="SUPERINTEND" type="text" disabled="disabled" id="textfield5" value"" />
      <label>
        TERM.: </label>
      <input name="TERM" type="text" disabled="disabled" id="textfield6" value"" />
      </form>
</div>
<div id="apDiv1"><img src="icon/longin.png" width="28" height="26" /></div>
<script type="text/javascript">



<!--
var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1", "none", {isRequired:false});
//-->
</script>
</body>
</html>

 

ag_valida.php

 


<?php

session_start();
//conexão com o banco
$aglink = mysql_connect('127.0.0.1', 'dieos', 'Di140984') or die ("Não foi possivel conectar ao banco");

$agbanco = mysql_select_db('infobank', $aglink) or die ("Não foi possivel acessar o banco");

$agCod = (isset($_POST['agencia'])) ? $_POST['agencia'] : '';

[color="#FF0000"]//aqui é a consulta do primeiro campo digitado[/color]
$agc = "SELECT * FROM `agencias` WHERE `ag_cod` = '".$agCod."' LIMIT 1";

$agquery = mysql_query($agc);
$agresultado = mysql_fetch_assoc($agquery);

if (empty($agresultado)) {

return false;

} else {
//variaveis que irão preencher os textfield iniciais
$_SESSION['agenciaNome'] = $agresultado['ag_Nome'];
$_SESSION['agenciaCode'] = $agresultado['ag_cod']; 
$_SESSION['agenciaTel'] = $agresultado['telefone'];
$_SESSION['agenciaFax'] = $agresultado['fax'];
$_SESSION['agenciaIpServ'] = $agresultado['ipserv'];
$_SESSION['agenciaIpRot'] = $agresultado['iprot'];
$_SESSION['agenciaCircu'] = $agresultado['circuito'];
$_SESSION['agenciaRamal'] = $agresultado['ramal'];

}



//aqui eu me guiei pelo post de como fazer pelo JSON 
        function montaSelect()
        {
			
			$tsql = "SELECT * FROM `terminal` ";
			 $tsql .= "WHERE `ag_cod` = '".$_SESSION['agenciaCode']."'";
                $tquery = mysql_query($tsql);
				

                if( mysql_num_rows( $tquery ) > 0 )
                {
                        while( $tdados = mysql_fetch_assoc( $tquery ) )
                        {
                                $topt .= '<option value="'.$tdados['ag_cod'].'">'.$tdados['t_Nome'].'</option>';
								
								
                        }
                }
                else
                        $topt = '<option value="0">Nunhum terminal cadastrado</option>';

                return $topt;
				
        }

//aqui seria os codigo do JSON, mas eu retirei pelo fato de não ter funcionado

header("Location: ocorrencia.php");




?>

ta ai pessoal comentei umas partes ai quem tiver uma solução eu agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Compartilhar este post


Link para o post
Compartilhar em outros sites

Willian,

 

fiz tudo dentro dos conformes,

 

copiei todo o seu codigo, ele puxa só os nomes da tabela mas não preenche os textfilds olha ai

 

index.php


<html>
<head>
      <script type="text/javascript" src="combo-preenche-input.php_arquivos/jquery-1.js"></script>
	<script type="text/javascript">
	$(document).ready(function(){
		$("select[name='nome']").change(function(){
			$("input[name='endereco']").val('Carregando...');
			$("input[name='telefone']").val('Carregando...');

			$.getJSON(
				'combo-preenche-input-function.php',
				{idCliente: $(this).val()},
				function(data){
					$.each(data, function(i, obj){
						$("input[name='endereco']").val(obj.endereco);
						$("input[name='telefone']").val(obj.telefone);
					})
				});
		});
	});
	</script>
</head>
<body>
        <form action="" method="post">
                <label>Nome: <select name="nome">
                        <option value="">--</option>
<?php
        include('function.php');
        echo montaSelect();
?>
                </select></label>
                <label>Endereço: 
                  <input type="text" name="endereco" value="" /></label>
                <label>Telefone: <input type="text" name="telefone" value="" /></label>

        </form>
</body>
</html>


<?php
        $con = mysql_connect('127.0.0.1', 'dieos', 'Di140984');
        mysql_select_db('ajax', $con);

        /**
         * função que retorna o select
         */
        function montaSelect()
        {
                $sql = "SELECT `idCliente`, `nome` FROM `cliente` ";
                $query = mysql_query( $sql );

                if( mysql_num_rows( $query ) > 0 )
                {
                        while( $dados = mysql_fetch_assoc( $query ) )
                        {
                                $opt .= '<option value="'.$dados['idCliente'].'">'.$dados['nome'].'</option>';
                        }
                }
                else
                        $opt = '<option value="0">Nenhum cliente cadastrado</option>';

                return $opt;
        }

        /**
         * função que devolve em formato JSON os dados do cliente
         */
        function retorna( $id=null )
        {
                $id = (int)$id;

                $sql = "SELECT * FROM `cliente` ";
                if( $id != null )
                        $sql .= "WHERE `idCliente` = {$id} ";
                $query = mysql_query( $sql );

                //$json = 'var dados = ';
                $json .= ' [';
                if( mysql_num_rows( $query ) > 0 )
                {
                        while( $dados = mysql_fetch_assoc( $query ) )
                        {
                                $json .= "{endereco: '{$dados['endereco']}', telefone: '{$dados['telefone']}'}";;
                        }
                }
                else
                        $json = 'endereco: não encontrado';

                $json .= ']';
                //$jston .= ';';

                return $json;
        }

/* só se for enviado o parâmetro, que devolve o combo */
if( isset($_GET['idCliente']) )
{
        echo retorna( $_GET['idCliente'] );
}
?>

só não ta retornando o valor

Compartilhar este post


Link para o post
Compartilhar em outros sites

então vai lá....

 

 

localhost/combo-preenche-input-function.php?idCliente=2

deve voltar um jSON como em:

http://www.wbruno.com.br/scripts/combo-preenche-input-function.php?idCliente=2

 

veja oque aparece pra você.

provavelmente serão erros php.

 

Arrume.

Compartilhar este post


Link para o post
Compartilhar em outros sites

então vai lá....

 

 

localhost/combo-preenche-input-function.php?idCliente=2

deve voltar um jSON como em:

http://www.wbruno.com.br/scripts/combo-preenche-input-function.php?idCliente=2

 

veja oque aparece pra você.

provavelmente serão erros php.

 

Arrume.

 

apareceu isso

 

Notice: Undefined variable: json in C:\Program Files\EasyPHP-5.3.3\www\teste\function.php on line 39

[{endereco: 'Avenida Ajax de Cloro', telefone: '9999-9996'}]

 

alguma ideia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

troca:

$json .= ' [';
                if( mysql_num_rows( $query ) > 0 )
por:

$json = ' [';
                if( mysql_num_rows( $query ) > 0 )

Compartilhar este post


Link para o post
Compartilhar em outros sites

troca:

$json .= ' [';
                if( mysql_num_rows( $query ) > 0 )
por:

$json = ' [';
                if( mysql_num_rows( $query ) > 0 )

 

beleza eu tinha feito isso

 

ela mostra so o resultado igual ao seu

 

[{endereco: 'Rua dos Bobos, n 0', telefone: '6666-6669'}]

mas a pagina principal continua mostrando somente o valor do combo, mesmo que eu escolha ela não preenche os textfield.

Compartilhar este post


Link para o post
Compartilhar em outros sites

vamos debugar o jquery agora:

 

                $("select[name='nome']").change(function(){
                        alert( $( this ).val() );

diga oque retornar.

 

se não retornar nada, você provavelmente não linkou a lib jQuery corretamente.

cara, é assim.. vai debugando e arrumando...

Compartilhar este post


Link para o post
Compartilhar em outros sites

vamos debugar o jquery agora:

 

                $("select[name='nome']").change(function(){
                        alert( $( this ).val() );

diga oque retornar.

 

se não retornar nada, você provavelmente não linkou a lib jQuery corretamente.

cara, é assim.. vai debugando e arrumando...

 

William,

 

esse codigo eu insiro em qual pagina? na do form ou na da função??

 

por que eu já tenho esse codigo dentro do <script> da pagina do form.

 

e olha o que aparece no dreamweaver quando eu clico pra ele me mostrar os codigos jquery.js

 

Imagem Postada

 

e essa outra é como ta a pagina

 

Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

o parser de JSON do jQuery sofreu alterações desde que fiz esse script...

 

segue o script corrijido:

 

function.php

<?php
	$con = mysql_connect('localhost', 'root', '123');
	mysql_select_db('test', $con);

	/**
	 * função que retorna o select
	 */
	function montaSelect()
	{
		$sql = "SELECT `idCliente`, `nome` FROM `cliente` ";
		$query = mysql_query( $sql );

		if( mysql_num_rows( $query ) > 0 )
		{
			while( $dados = mysql_fetch_assoc( $query ) )
			{
				$opt .= '<option value="'.$dados['idCliente'].'">'.$dados['nome'].'</option>';
			}
		}
		else
			$opt = '<option value="0">Nenhum cliente cadastrado</option>';

		return $opt;
	}

	/**
	 * função que devolve em formato JSON os dados do cliente
	 */
	function retorna( $id )
	{
		$id = (int)$id;

		$sql = "SELECT `idCliente`, `nome`, `telefone`, `endereco` 
			FROM `cliente` WHERE `idCliente` = {$id} ";
		$query = mysql_query( $sql );


		$arr = Array();
		if( mysql_num_rows( $query ) )
		{
			while( $dados = mysql_fetch_object( $query ) )
			{
				$arr['endereco'] = $dados->endereco;
				$arr['telefone'] = $dados->telefone;
			}
		}
		else
			$arr[] = 'endereco: não encontrado';

		return json_encode( $arr );
	}

/* só se for enviado o parâmetro, que devolve o combo */
if( isset($_GET['idCliente']) )
{
	echo retorna( $_GET['idCliente'] );
}

index.php

<html>
<head>
	<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
	<script type="text/javascript">
	$(document).ready(function(){
		$("select[name='nome']").change(function(){
			var endereco = $("input[name='endereco']");
			var telefone = $("input[name='telefone']");
			
			$( endereco ).val('Carregando...');
			$( telefone ).val('Carregando...');

				$.getJSON(
					'function.php', 
					{ idCliente: $( this ).val() }, 
					function( json )
					{
						$( endereco ).val( json.endereco );
						$( telefone ).val( json.telefone );
					}
				);
		});
	});
	</script>
</head>
<body>
	<form action="" method="post">
		<label>Nome: <select name="nome">
			<option value="">--</option>
<?php
	include 'function.php';
	echo montaSelect();
?>
		</select></label>
		<label>Endereço: <input name="endereco" type="text" disabled="disabled" value="" /></label>
		<label>Telefone: <input type="text" name="telefone" value="" /></label>
	</form>
	
		
	<div id="test"></div>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Willian,

 

nada cara...

 

copiei esses codigos em uma pagina nova, salvei rodei e so me retorna os dados do combo, não chega a preencher os textfield

 

tu achas que pode ser configuração do meu easyPHP?

 

ha e o retorno da pagina function.php ta normal se colocar o cod ele mostra os dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

troca:

$("select[name='nome']").change(function(){
por

$("select[name='nome']").change(function(){
    alert( $( this ).val() );

provavel que seja erro no teu js..

qual versão do jQuery você tá usando ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posso participar deste tópico? N

 

pode sim toda a ajuda é bem vinda

 

troca:

$("select[name='nome']").change(function(){
por

$("select[name='nome']").change(function(){
    alert( $( this ).val() );

provavel que seja erro no teu js..

qual versão do jQuery você tá usando ?

 

\o/ \o/ \o/ \o/

 

Rodouuuuuuuuuuuuuuuuu

 

valeu muito Willian, agora posso ir trabalhar em paz...

 

eu baixei outra biblioteca a 1.4.3-min.js e alterei na index no cabeçalio do script.

 

vlw mesmo agora vo estudar e implementar a minha aplicação.

 

até a proxima duvida

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posso participar deste tópico? N

 

pode sim, qual a dúvida?

 

pegue o script do post #13 e estude, rode do jeito que está lá.

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.