Ir para conteúdo

POWERED BY:

Arquivado

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

tana

[Resolvido] Função Ajax onChange Select

Recommended Posts

Olá pessoal...estou com um probleminha...

tenho um select preenchido com nomes de usuários cadastrados no banco...

preciso que quando for selecionado um nome de usuário neste select, apareca em meu textfield o email do usuário selecionado...

tenho uma função que retorna o select:

 

return $res->GetMenu('ID',null,true,false,0,'onChange="xajax_busca_email(this.options[this.selectedIndex].value)"');

 

criei uma function ajax que procura o email do usuário selecionado:

<?php
$ajax = new xajax();

$ajax->registerFunction("busca_email");


function busca_email($id){
	
	$objResponse = new xajaxResponse('ISO-8859-1');	
	$res = '';
	
			$sql = "select email from tusuarios where id = $id";
		
			$con = new conexao(); 
			$resultado = $con->bd->Execute($sql);
			
			if ($reg = $resultado->FetchNextObject()) {
				$res = $reg->EMAIL;	
			}
		
	$objResponse->assign('email2', 'value', $res);

	return $objResponse;
}	

$ajax->processRequest();

?>
porém não está funcionando....

alguém pode ajudar?????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Compartilhar este post


Link para o post
Compartilhar em outros sites

William é isso mesmo que preciso!!

mas não ta funcionando aki :S

 

o código está aki...

 

mas só aparece carregando...

 

pagina.php

<html>
<head>
        <script type="text/javascript" src="jquery-1.3.2.js"></script>
        <script type="text/javascript">
        $(document).ready(function(){
                $("select[name='nome']").change(function(){
                        $("input[name='email']").val('Carregando...');
                        $.getJSON(
                                'function.php',
                                {id: $(this).val()},
                                function(data){
                                        $.each(data, function(i, obj){
                                                $("input[name='email']").val(obj.email);
                                        })
                                });
                });
        });
        </script>
</head>
<body>
        <form action="" method="post">
                <label>Nome: <select name="nome">
                        <option value="">--</option>
<?php
        include('function.php');
        echo montaSelect();
?>
                </select></label>
                <label>Email: <input type="text" name="email" value="" /></label>
        </form>
</body>
</html>

 

e function.php

<?php
        $con = mysql_connect('localhost', 'root', '222');
        mysql_select_db('teste', $con);

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

                if( mysql_num_rows( $query ) > 0 )
                {
                        while( $dados = mysql_fetch_assoc( $query ) )
                        {
                                $opt .= '<option value="'.$dados['id'].'">'.$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 clientes ";
                if( $id != null )
                        $sql .= "WHERE id = {$id} ";
                $query = mysql_query( $sql );

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

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

                return $json;
        }

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

Não sei o que pode estar errado, provavelmente seja algum detalhe...

obrigada pela atenção William...

estou no aguardo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

aqui, é em minusculo ne?!

if( isset($_GET['id']) )
{
        echo retorna( $_GET['id'] );
}

acesse diretamente o arquivo de function, para ver se o jSON está sendo formado corretamente

localhost/function.php?id=2

 

se aparecerem erros php, arrume eles.

Compartilhar este post


Link para o post
Compartilhar em outros sites

aqui, é em minusculo ne?!

if( isset($_GET['id']) )
{
        echo retorna( $_GET['id'] );
}

acesse diretamente o arquivo de function, para ver se o jSON está sendo formado corretamente

localhost/function.php?id=2

 

se aparecerem erros php, arrume eles.

 

Encontrei o erro Willian...

como eu preciso só do email, meu sql na function retorna deve ficar assim:

$sql = "SELECT email FROM tusuarios ";

está funcionando direitinho...

muuito obrigada pela ajudaa!!! :)/>

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.