Ir para conteúdo

Arquivado

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

Rogério Bonfim

Capturar valores de 2 variaveis php e printar em lugares destintos

Recommended Posts

olá pessoal eu estou com uma duvida que é simples para quem ja tem esperiencia em JQuery.

é o seguinte eu estou desenvolvendo um caixa de automação e nele eu tenho o campo ID que consulta o id do produto e me retorna a descrição usando o ID como filtro. porém eu queria que além de ele me retornar a descrição ele também atualizasse um campo com o Preço do produto e que eu pudesse printar este preço na tag que eu quiser pois como está eu contigo printar o preço mais ele vem junto com a descrição e eu queria separa-los. Segue abaixo o meu código:

 

JQuery neste codigo eu envio o id e retorno a descrição ali no final eu uso para printar o #resultado. Eu gostaria de além de ter o resultado eu tivesse um outro id com o preço assim eu poderia por resultado em um lugar e preço em outro

<script type="text/javascript" language="javascript" src="jquery-2.1.3.min.js"></script>
<script type="text/javascript" language="javascript">
        $(function(){ // declaro o início do jquery
                $("input[name='id_product']").blur( function(){//botão para disparar a ação
                        var id_product = $("input[name='id_product']").val();
                        //alert(nomeUsuario);
                        $.post('consult_produto.php',{id_product: id_product},function(data){
                                $('#resultado').html(data);//onde vou escrever o resultado
                        });
                });

segue o docigo PHP:

<?php
//envio o charset para evitar problemas
        header("Content-Type: text/html; charset=ISO-8859-1");
$con = @mysql_connect('localhost', 'root', '');//faço a conexão com o banco
        mysql_select_db('saboreart', $con);//seleciono a tabela no banco
        $sql = "SELECT * FROM `products`
                WHERE `id` = '{$_POST['id_product']}' ";//monto a query
        $q = mysql_query( $sql );//executo a query
        if( mysql_num_rows( $q ) > 0 )://se retornar algum resultado
                $collect_date = mysql_fetch_array($q);
				  $produto = $collect_date[2];
				  $precoProduto = $collect_date[4];
				  $precoFormat = number_format($precoProduto, 2, ',', ' ');
				  echo $produto;
				  echo '<br />'."Valor:"."<input type=\"text\" value=\"R$: $precoFormat\">";
        else:
           
		endif;
?>

e aqui segue o HTML:

<body>
<div id="corpo">
<form id="formulario" action="" method="post">


 <label> Codigo do produto: <input type="text" id="idProduto" name="id_product"></label> 
 <label>Descricao: <span id="resultado"> AQUI EU PRINTO A DESCRIÇÃO</span></label><br />
 <label>Valor: <span id="valor">AQUI EU GOSTARIA DE PRINTAR O VALOR </span></label><br />
 <label> Quantidade: <input type="text" id="qtdProduto" name="qtdProduto" value="01"></label><br />
 <input id="enviaPost" type="submit" name="Enviar" value="Inserir Produto">
</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

No PHP é só colocar o retorno em um array, e utilizar json_encode.

No retorno do $.post você manipula como quiser o seu json.

voce poderia me dar uma amostra de como seria? e que sou meio iniciante em php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu simulei no jsfiddle, para você entender melhor - http://jsfiddle.net/angelorubin/zuferd9j

No PHP é só utilizar o json_encode.

reparei que no val_product voce definiu um valor porém o que eu pretendo é que atravéz do id inserido ele filtre e me de a descrição do produto e o valor do produto que es´ta cadastrado no banco de dados que está contino numa variavel

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu entendi o que você precisa, mas como citei anteriormente, "Eu simulei no jsfiddle", porém o que você precisa fazer é enviar apenas o id e retornar o que precisa com o json_encode.

 

Seria algo assim:

 

Você recebe o $_POST com o id_product enviado pelo ajax no php.

$id = $_POST;

Utiliza json_decode para o id_product que esta no $_POST proveniente do ajax.

$id = json_decode(id);

Faça sua busca normalmente com php/mysql.

Transfrome o resultado em json com o json_encode e retorne a requisição ajax.

$resultado = json_encode($resultado_da_minha_busca_no_banco);
echo($resultado);

Com o $resultado de retorno e só colocar cada coisa em seu devido lugar com jquery.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu entendi o que você precisa, mas como citei anteriormente, "Eu simulei no jsfiddle", porém o que você precisa fazer é enviar apenas o id e retornar o que precisa com o json_encode.

 

Seria algo assim:

 

Você recebe o $_POST com o id_product enviado pelo ajax no php.

$id = $_POST;

Utiliza json_decode para o id_product que esta no $_POST proveniente do ajax.

$id = json_decode(id);

Faça sua busca normalmente com php/mysql.

Transfrome o resultado em json com o json_encode e retorne a requisição ajax.

$resultado = json_encode($resultado_da_minha_busca_no_banco);
echo($resultado);

Com o $resultado de retorno e só colocar cada coisa em seu devido lugar com jquery.

acho que entendi porém naoe stou cosneguindo. segue o Jquery que estou executando para pegar o resultado:

 $(function(){ // declaro o início do jquery
                $("input[name='id_product']").blur( function(){//botão para disparar a ação
                        var id_product = $("input[name='id_product']").val();
                        //alert(nomeUsuario);
                        $.post('consult_produto.php',{id_product: id_product},function(data){
						$('span#resultado').append(data.produto);	
						$('span#valor').append(data.precoFormat);
				      });
                });

e segue o php:

<?php
//envio o charset para evitar problemas
        header("Content-Type: text/html; charset=ISO-8859-1");
$con = @mysql_connect('localhost', 'root', '');//faço a conexão com o banco
        mysql_select_db('saboreart', $con);//seleciono a tabela no banco
        $sql = "SELECT * FROM `products`
                WHERE `id` = '{$_POST['id_product']}' ";//monto a query
        $q = mysql_query( $sql );//executo a query
        if( mysql_num_rows( $q ) > 0 )://se retornar algum resultado
                $collect_date = mysql_fetch_array($q);
				  $produto = $collect_date[2];
				  $precoProduto = $collect_date[4];
				  $precoFormat = number_format($precoProduto, 2, ',', ' ');
				  
				  
				  echo json_encode($produto, $precoFormat);
        else:
           
		endif;
?>

se possível me explique aonde estyou errando?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Envia o $collect_date com tudo e manipula depois.

echo json_encode($collect_date);

Manipula dentro do success:

$("input[name='id_product']").on('blur', function(){//botão para disparar a ação
    var id_product = $(this).val();
    $.ajax({
        type : "POST",
        url : "/echo/json/",
        data : {
            json : JSON.stringify({
                'id_product' : id_product
            })
        },
        success : function(response){
            console.log(response);
            // manipula a resposta aqui
        }
    });
});

Faz o console.log(response) e veja no console do navegador como fica seu retorno, ai é só manipular.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Printa o resultado do console.log(response), para vermos como iremos manipula-lo.

ME RETORNA ISTO:

{"0":"12a","id":"12a","1":"Aleatoria","categoria":"Aleatoria","2":"Primeiro produto de testes","produto":"Primeiro produto de testes","3":"12","valor_custo":"12","4":"15","valor_venda":"15","5":"2015-01-30 14:30:48","data_cad":"2015-01-30 14:30:48"}

como eu manipulo isto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você recebe o json no response:

{
  "0": "12a",
  "id": "12a",
  "1": "Aleatoria",
  "categoria": "Aleatoria",
  "2": "Primeiro produto de testes",
  "produto": "Primeiro produto de testes",
  "3": "12",
  "valor_custo": "12",
  "4": "15",
  "valor_venda": "15",
  "5": "2015-01-30 14:30:48",
  "data_cad": "2015-01-30 14:30:48"
}

E pega o valor assim:

console.log(response.produto); // Primeiro produto de testes
console.log(response.valor_venda); // 15

E coloca no devido lugar.

$('#produto').empty().append(response.produto);

Compartilhar este post


Link para o post
Compartilhar em outros sites

ainda nao consegui eis o codigo que fiz porém nao está funcionando

 $("input[name='id_product']").blur( function(){//botão para disparar a ação
                  var id_product = $("input[name='id_product']").val();
                  $.ajax({
                  type : "POST",
                  url : "consult_produto.php",
                  data : { 
                  json : JSON.stringify({
                  'id_product' : id_product
                  })
                  },
                    success : function(response){
                    console.log(response.produto); // Primeiro produto de testes
                    console.log(response.valor_venda); // 15
				    $('#produto').html(response.produto);
					$('#valor').html(response.valor_venda);
               }
               });//
               });//fim da função onblur

Compartilhar este post


Link para o post
Compartilhar em outros sites

https://www.dropbox.com/s/8yn3yuq2g1ae727/print_error.JPG?dl=0

 

 

Esta me dizendo undefined

nestas linhas:

console.log(response.produto);

console.log(response.produto); // Primeiro produto de testes

console.log(response.valor_venda); // 15

 

amigo depois de muito pesquisar na internet finalmente eu consegui fazer.

Eis o código para quem tiver interesse:

$("input[name='id_product']").blur( function(){//botão para disparar a ação                        var id_product = $("input[name='id_product']").val();                        //alert(nomeUsuario);                        $.ajax({                        type: 'POST',                        url: 'consult_produto.php',                        data: {id_product: id_product},                        dataType: 'json',                       success: function(data) {						   $('#produto').html(data.produto);						   $('#valor').html(data.valor_venda);                      }                });                });

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.