Problems using getJSON to load Json from php page

Asked

Viewed 242 times

0

The intection is to take the result of a select, assign in an array, and place its value in an html element. the value is listed and assigned to the array, however, I cannot insert it into my html my jquery that does this

<script type="text/javascript">
$(document).ready(function(){

    $("tr[data-toggle='modal']").click(function(){

        //Pegando valores dos campos "data-* do <tr> clicado"
        var id = $(this).data("id");
        var data = $(this).data("data");
        var status = $(this).data("status");
        var problema = $(this).data("problema");
        var solucao = $(this).data("solucao");
        var carro = $(this).data("carro");
        var cpf = $(this).data("cpf");

        //requisição ajax para obter dados das tabelas "cliente" e "veículo"
        $.getJSON('../controller/php/carregar_dados_OS_Modal.php?search=',{id_carro: carro, ajax: 'true'}, function(resultado)
            {
            $("#nome_cliente").text(resultado.nome_cliente);
            });


        //Atribuindo esses valores aos elementos do modal
        $("#id").text("ID Ordem de serviço #"+id);
        $("#data").text("Emissão: "+data);
        $("#status").val(status);
        $("#problema").text(problema);
        $("#solucao").text(solucao);

        });
    });
</script>  

php for the listing:

$id_veiculo = $_REQUEST['id_carro'];
$cpf = "25836914766";

$conn = new Conexao();
$link = $conn->getLink();

$select = "SELECT veiculo.PLACA , veiculo.NOME as NOME_VEICULO,cliente.NOME as NOME_CLIENTE,cliente.TELEFONE FROM `veiculo` INNER join cliente on veiculo.CPF = cliente.CPF WHERE cliente.CPF =$cpf AND veiculo.ID_CARRO =$id_veiculo ";
$resultado_consulta = mysqli_query($link, $select);

while( $row = mysqli_fetch_assoc($resultado_consulta) )
{
 echo $row['NOME_CLIENTE'];
 echo "<BR>";
 echo $row['NOME_VEICULO'];
 echo "<BR>";
 echo $row['TELEFONE'];
 echo "<BR>";
 echo $row['PLACA'];

 $resultado[] = array(
 'nome_cliente' =>$row['NOME_CLIENTE'],
 'cpf' =>$cpf,
 'telefone' =>$row['TELEFONE'],
 'nome_veiculo' =>$row['NOME_VEICULO'],
 'placa' =>$row['PLACA'],
 );
}

echo(json_decode($resultado));
?>  

had never used json, I’m starting and I’m well lost

  • JSON returns correct? What problem is presenting?

  • The json is returning correct, what is happening is that I cannot get the value of the array returned by it and assign it to an html element

  • If I give a var_dump in $result, it returns this

  • array(1) { [0]=> array(5) { ["client name"]=> string(13) "JOÃO DA SILVA" ["Cpf"]=> string(11) "25836914766" ["phone"]=> string(11) "48997466427" ["vehicle name"]=> string(5) "Fuse" ["board"]=> string(8) "abc-9809" } }

  • So it means that the array has been filled in. The problem is in it through json there in jquery code

  • of the one console.log(resultado) to see if json is coming in correctly

  • is not coming. It returns me false

Show 2 more comments

1 answer

0

Why don’t you try doing it this way:

Script:

    <script type="text/javascript">
$(document).ready(function(){

    $("tr[data-toggle='modal']").click(function(){

        //Pegando valores dos campos "data-* do <tr> clicado"
        var id = $(this).data("id");
        var data = $(this).data("data");
        var status = $(this).data("status");
        var problema = $(this).data("problema");
        var solucao = $(this).data("solucao");
        var carro = $(this).data("carro");
        var cpf = $(this).data("cpf");

        //requisição ajax para obter dados das tabelas "cliente" e "veículo"
        $.ajax({
    type: "POST",
    url: "../controller/php/carregar_dados_OS_Modal.php",
    data: { id: id, data: data, status: status, problema: problema, solucao: solucao, carro: carro, cpf: cpf },
    success: function (resultado) {
        console.log(resultado);  //para testar o que está a ser retornado na consola. 
   $("#nome_cliente").text(resultado.nome_cliente);

    //Atribuindo esses valores aos elementos do modal
       /* $("#id").text(resultado.id);
        $("#data").text("Emissão: "resultado.data);
        $("#status").val(resultado.status);
        $("#problema").text(resultado.problema);
        $("#solucao").text(resultado.solucao);*/

    }
});
    });
</script>  

PHP to work on the results you want to fetch the database

<?php

Once we made a call on POST method

if(isset($_POST)){
    $id_veiculo = $_POST['id'];
    $cpf = $_POST['cpf'];

$conn = new Conexao();
$link = $conn->getLink();

$select = "SELECT veiculo.PLACA , veiculo.NOME as NOME_VEICULO,cliente.NOME as NOME_CLIENTE,cliente.TELEFONE FROM `veiculo` INNER join cliente on veiculo.CPF = cliente.CPF WHERE cliente.CPF =$cpf AND veiculo.ID_CARRO =$id_veiculo ";
$resultado_consulta = mysqli_query($link, $select);

while( $row = mysqli_fetch_assoc($resultado_consulta) )
{
 echo $row['NOME_CLIENTE'];
 echo "<BR>";
 echo $row['NOME_VEICULO'];
 echo "<BR>";
 echo $row['TELEFONE'];
 echo "<BR>";
 echo $row['PLACA'];

 $resultado = array(
 'nome_cliente' =>$row['NOME_CLIENTE'],
 'cpf' =>$cpf,
 'telefone' =>$row['TELEFONE'],
 'nome_veiculo' =>$row['NOME_VEICULO'],
 'placa' =>$row['PLACA']
 );
}

echo(json_decode($resultado));
}else{
    // Retorne o seu erro. 
}
    ?>  
  • Well, it’s still not working. I found that the problem lies in assigning the values to the $result array. If I give an echo in any position it shows as if it were undefined.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.