Ir para conteúdo

POWERED BY:

Arquivado

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

renatagramos

[Resolvido] Preencher select com resultado de consulta ao banco

Recommended Posts

Colegas,

 

Copiei daqui e editei um formulário que busca as informações no banco e carrega os inputs para alteração. Está funcionando!

 

Mas quando o campo nao é um 'input' e sim um 'select' a informação não aparece, só mostra as 'options' do formulário.

 

script_function.php

<?php
include "../../config.php"; //inclui o arquivo de conexão

       /**
        * função que retorna o select
        */
       function montaSelect()
       {
               $sql = "SELECT * FROM cad_cliente ORDER BY cli_razao";
               $query = mysql_query( $sql );

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

               //$json = 'var dados = ';
               $json .= ' [';  
               if( mysql_num_rows( $query ) > 0 )
               {
                       while( $dados = mysql_fetch_assoc( $query ) )
                       {
                               $json .= "{
							cli_id: '{$dados['cli_id']}',
							cli_status: '{$dados['cli_status']}',
							razao: '{$dados['cli_razao']}',								
							doc_cpf: '{$dados['cli_cpf']}', 
							doc_cnpj: '{$dados['cli_cnpj']}', 
							cli_fantasia: '{$dados['cli_fantasia']}',
							cli_tipo_edif: '{$dados['cli_tipo_edif']}', 
   }
               }
               else
                       $json = 'cli_end: não encontrado';

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

               return $json;
       }


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

 

script_alterando_cliente.js


$(document).ready(function(){
	$("select[name='cli_razao']").change(function(){
		$("input[name='cli_id']").val('Carregando...');
		$("input[name='cli_status']").val('Carregando...');
		$("input[name='razao']").val('Carregando...');
		$("input[name='doc_cpf']").val('Carregando...');
		$("input[name='doc_cnpj']").val('Carregando...');
		$("input[name='cli_fantasia']").val('Carregando...');
		$("select[name='cli_tipo_edif']").val('Carregando...');

$.getJSON(
			'script_function_altera_cliente.php',
			{cli_id: $(this).val()},
			function(data){
				$.each(data, function(i, obj){
		$("input[name='cli_id']").val(obj.cli_id);
		$("input[name='cli_status']").val(obj.cli_status);
		$("input[name='razao']").val(obj.razao);
		$("input[name='doc_cpf']").val(obj.doc_cpf);
		$("input[name='doc_cnpj']").val(obj.doc_cnpj);
		$("input[name='cli_fantasia']").val(obj.cli_fantasia);
		$("select[name='cli_tipo_edif']").val(obj.cli_tipo_edif);
})
			});
	});
});

Compartilhar este post


Link para o post
Compartilhar em outros sites

RESOLVIDO!!!

 

Parece absurdo, mas a questão era que os textos das "options" e "values" tinham que estar todos em maiúsculo, já que tudo que vai pro banco está em maiúscula (uso o 'mb_strtoupper' nos campos antes de registrar no banco).

 

Valeu!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

@renata, qual o problema agora ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

@renata, qual o problema agora ?

 

 

Olá, William! Desculpe a demora, não vi sua mensagem.

 

O sistema funciona muito bem, só tem uma coisa... Quando eu busco no banco um campo com um texto grande e formatado (pulando linha com [enter]), ele não preenche, fica só carregando...

 

Já fiz vários testes e o problema é só nesse campo.

 

Não sei se fui clara na explicação...

 

Obrigada!

 

Renata

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.