Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 75 postagens
Mais de 75 postagens
Tópico Autor
Mensagens: 75

Como passar ID na url ?

02-04-2010 00:12

Olá, boa noite a todos do forum.

Bom pessoal, meu problema é o seguinte, tenho um formulário no qual após selecionar o nome de um determinado cliente os seus dados sejam preenchidos automaticamente em outros campos input.

Uso o seguinte codigo em Ajax abaixo para fazer a busca pelo cliente:

$("input[name='cliente_id']").autocomplete("avaliacao/busca-nome.php", {                 width: 378,                 selectFirst: true         })

E para fazer o auto-preenchimento dos outros campos uso o seguinte codigo abaixo:

$("input[name='cliente_id']").change(function(){ $("input[name='peso']").val('Carregando...'); $("input[name='altura']").val('Carregando...'); $("input[name='estadocivil']").val('Carregando...'); $("input[name='cpf']").val('Carregando...');            $.getJSON(                 'avaliacao/function.php',                 {id: $(this).val()},                 function(data){                         $.each(data, function(i, obj){                         $("input[name='peso']").val(obj.peso);                         $("input[name='altura']").val(obj.altura);                         $("input[name='estadocivil']").val(obj.estadocivil);                         $("input[name='cpf']").val(obj.cpf);

Para buscar esse usuário no banco uso a seguinte função abaixo em PHP. (avaliacao/busca-nome.php)

<?php     require_once "../conexao.php";     $q = strtolower($_GET["q"]);     if (!$q) return;     $sql       = "SELECT id, nome FROM cliente WHERE nome LIKE '%". $q ."%'";     $resultado = mysql_query($sql) or die ("ERRO: ". mysql_error());     while ($linha = mysql_fetch_array($resultado))     {         if (strpos(strtolower($linha['nome']), $q) !== false)         {             $id = $linha['id'];             $nome = $linha['nome'];                         echo $nome ."|". $id. "\n";          }     } ?>

E para fazer o preenchimento dos campos, após selecionar um cliente uso o seguinte codigo em PHP abaixo. (function.php)

<?php function retorna( $opcao=null ) {       $opcao = (int)$opcao;                        $sql = "SELECT * FROM cliente";       if( $opcao != null )             $sql .= " WHERE id = {$opcao} ";             $resultado = mysql_query( $sql );                 //$json = 'var dados = ';              $json .= ' [';                 if( mysql_num_rows( $resultado ) > 0 )               {                   while( $dados = mysql_fetch_assoc( $resultado ) )           {                           $json .= "{peso: '{$dados['peso']}', altura: '{$dados['altura']}',  estadocivil: '{$dados['estadocivil']}'}";                    }               }               else                  $json = 'Dados n&atilde;o encontrado';                                          $json .= ']';                 //$jston .= ';';                                  return $json;         }                   /* s&oacute; se for enviado o parâmetro, que devolve o combo */ if( isset($_GET['id']) ) {      echo retorna( $_GET['id'] ); } ?>


No entanto da forma que está aí, caso eu digite o "nome" do usuario e clique nele ou não os campos que era pra preencherem com os dados vindo do banco ficam todos com o nome "carregando...", no entanto, se eu passar o "ID" do usuário no lugar do seu nome todos os campos são preenchidos corretamente.

Então o que gostaria de fazer é o seguinte, quando eu digitasse o nome do usuário e o selecionasse fosse passado para URL o "ID" do nome que cliquei e não as letras que digitei no input.

Alguém por favor poderia me dizer aonde que modifico meu código para que eu alcance o que estou pretendendo fazer ?!

Desde de já obrigado pela ajuda de todos.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Como passar ID na url ?

02-04-2010 00:19

Deixa eu ver se entendi, aqui você pega o nome do usuário

$("input[name='cliente_id']").autocomplete("avaliacao/busca-nome.php", {

Ai você queria ao invés de passar o nome para o busca-nome.php, passar o id dele, é isso?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Tópico Autor
Mensagens: 75

Como passar ID na url ?

02-04-2010 00:21

Exatamente web, é isso que estou tentando fazer e não consigo!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Como passar ID na url ?

02-04-2010 00:24

Teria que ver toda a estrutura do script, tipo, um exemplo básico funcionando, tipo, se você pudesse zipar blz. Ou, você pode usar uma gambiarra. Já que você passa o nome, pega o nome e faz uma consulta com ele para retornar o id, ai com o id você faz o que precisa.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Tópico Autor
Mensagens: 75

Como passar ID na url ?

02-04-2010 00:27

Irei zipar aqui, e passar o codigo, só um instante!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Como passar ID na url ?

02-04-2010 00:29

|-) Agora to indo dormir, assim que chegar analiso, t+
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Tópico Autor
Mensagens: 75

Como passar ID na url ?

02-04-2010 00:39

Desculpa pela demora aqui está o link para baixar http://sharex.xpg.com.br/files/23163238 ... e.zip.html

Demorei devido está ajeitando todo o codigo, mais caso dê algum problema é só avisar, e desde de já obrigado pela ajud.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Como passar ID na url ?

02-04-2010 08:05

MOVIDO: de PHP para MySQL

Foi como eu falei, tinha que fazer uma sub-consulta com base no nome, que é o digitado, para pegar o id

Vai no function.php, troque o último if do documento por esse

if( isset($_GET['id']) ) { extract($_GET); // $id é na verdade o nome digitado, então a consulta é baseada no nome $selec = "SELECT id, nome FROM cliente WHERE nome='$id'"; $exec = mysql_query($selec, $conexao) or die(mysql_error()); // aqui pegamos o id do nome digitado $novo_id = mysql_result($exec , 0, "id"); echo retorna( $novo_id ); } 

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Tópico Autor
Mensagens: 75

Como passar ID na url ?

02-04-2010 09:28

Bom dia web,

Está dando o seguinte erro abaixo na linha 132

<b>Warning</b>:  mysql_result(): supplied argument IS NOT a valid MySQL RESULT resource IN <b>/var/www/safen/avaliacao/FUNCTION.php</b> ON line <b>132</b><br />

E na linha 132 está o seguinte abaixo:

$novo_id = mysql_result($exec , 0, "id"); 

E a consultar por completo é que está abaixo:

if( isset($_GET['id']) ) { extract($_GET); // $id é na verdade o nome digitado, então a consulta é baseada no nome $selec = "SELECT id, nome FROM cliente WHERE nome='$id'"; $exec = mysql_query($selec, $conexao) or die(mysql_error()); // aqui pegamos o id do nome digitado $novo_id = mysql_result($exec , 0, "id"); echo retorna( $novo_id ); } 

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Como passar ID na url ?

02-04-2010 10:17

Estranho, aqui não deu esse erro.

$novo_id = mysql_result($exec , 0, "id"); 

$exec é a query que roda o select, 0 é o primeiro item da tabela, e id é a coluna.

Verifica ai a consulta, se sua tabela não tem os nomes diferentes do que coloquei.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Tópico Autor
Mensagens: 75

Como passar ID na url ?

02-04-2010 10:29

Eu tinha mudado os nomes das variáveis que, e também o da query que recebe o select, por isso estava dando aquele ERRO, só que eu corrigir, e deu um novo erro.

Meu codigo está assim, na verdade o que voce fez e eu apenas alterei o nomes das variáveis.

if( isset($_GET['id']) )  {     extract($_GET);     // $id é na verdade o nome digitado, então a consulta é baseada no nome     $sql           = "SELECT id, nome FROM cliente WHERE nome = '$id'";     $resultado = mysql_query($sql) or die(mysql_error());     // aqui pegamos o id do nome digitado     $_GET['novo_id'] = mysql_result($resultado , 0, "id");     echo retorna( $novo_id ); } 

No seu mysql_query existe uma variável $conexao, de onde que ela vem ?! Seria o arquivo de conexao ?!

O erro que está dando é o seguinte abaixo agora:

<b>Warning</b>:  mysql_result() [<a href='function.mysql-result'>FUNCTION.mysql-result</a>]: Unable TO jump TO ROW 4 ON MySQL RESULT INDEX 4 IN <b>/var/www/safen/avaliacao/FUNCTION.php</b> ON line <b>77</b><br />

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Como passar ID na url ?

02-04-2010 10:34

Isso mesmo, $conexao vem lá do conexao.php

$conexao = mysql_connect ($host, $user, $pass) or trigger_error ("N&atilde;o foi possivel conectar ". mysql_error(), E_USER_ERROR); 

Peguei seu script, a única coisa que fiz foi alterar os dados do conexão, executar o sql e adicionar esse if.

Você está rodando o script em PHP4?

Dá uma verificada se não está dando conflito quando muda os nomes, ou faça o teste que indiquei, com o seu script do modo que você me mandou. Se você me adicionar no MSN te mostro o teste codigosnaweb HOTMAIL
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Tópico Autor
Mensagens: 75

Como passar ID na url ?

02-04-2010 12:19

Fazendo o debug aqui direto na URL, percebi algo meio estranho, invés de aparecer o dos dados apenas do ID que eu passasse aparece o resultados de todos os cliente cadastrados.

O resultado que me é mostrador na pagina é o seguinte abaixo:

Warning: mysql_result() [FUNCTION.mysql-RESULT]: Unable TO jump TO ROW 0 ON MySQL RESULT INDEX 4 IN /var/www/safen/avaliacao/FUNCTION.php ON line 86   [{peso: '74', altura: '1.80', estadocivil: 'Solteiro', cpf: '123.456.789-10', rg: '', email: '', profissao: 'Estudante', endereco: 'Rua Rui Barbosa', numero_casa: '688', complemento: '', bairro: 'Junco', foneresi: '', fonecel: '(89) 9974-0483', fonecom: '', sexo: 'M', idade: '2010', estado: '', cidade: ''}   {peso: '50', altura: '1.60', estadocivil: 'Outros', cpf: '123.456.789.22', rg: '654895', email: '', profissao: 'Estudante', endereco: 'Rua da Faca', numero_casa: '654', complemento: '', bairro: 'Junco', foneresi: '', fonecel: '(89) 9494-9494', fonecom: '', sexo: 'M', idade: '2010', estado: '', cidade: ''}   {peso: '65', altura: '1.65', estadocivil: 'Solteiro', cpf: '365.522.459-87', rg: '', email: '', profissao: 'Outros', endereco: 'Rua sem nome', numero_casa: '11', complemento: '', bairro: 'Cohab', foneresi: '', fonecel: '', fonecom: '', sexo: 'M', idade: '2010', estado: '', cidade: ''}   {peso: '74', altura: '1.80', estadocivil: 'Solteiro', cpf: '125.698.746-53', rg: '', email: '', profissao: 'Estudante', endereco: 'Rua Frei Serafim', numero_casa: '1211', complemento: '', bairro: 'Nova Caxias', foneresi: '', fonecel: '', fonecom: '', sexo: 'M', idade: '2010', estado: '', cidade: ''}]

Fiz o debug digitando no browser o seguinte http://localhost/safen/avaliacao/function.php?id=1 era pra aparecer apenas os valores do ID=1 e não todos da forma como está.

A não ser que voce tenha feito para mostrar todos. Estou aguardando o seu convite para mim aceitar no MSN.
Té mais.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Como passar ID na url ?

02-04-2010 13:05

Aguardo seu contato via MSN para mostrar o exemplo que montei.
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado