• 0
Sign in to follow this  
MTavares

( Resolvido ) json_encode retorna undefined

Question

Olá colegas.

Não sei exatamente se o erro está no Jquery ou PHP, mas por via das dúvidas colocarei aqui. Tenho um sistema do qual o usuário ao selecionar o tamanho da pizza, aparecerá a relação das pizzas referentes ao tamanho. Porém ele retorna o nome da Pizza, mas o ID ele retorna como undefined. Veja:

HTML

<select name="Pizzas" id="pizzas" class="form-control" disabled>
   <option value="0">Selecione o tamanho da pizza acima</option>
</select>

JQUERY

<script type="text/javascript">
  $(document).ready(function() {
    $('#tamanho-pizzas').change(function(e) {
      $('#pizzas').attr("disabled", false);
      $('#pizzas').empty();
      var id = $(this).val();

      if(id == 0){
        $('#pizzas').attr("disabled", true);
        $('#pizzas').html("<option value='0'>Selecione o tamanho da pizza acima</option>");
      }
      // alert(id);
      $.post('pizzariasajax.php', {ufid:id}, function(data){


        //  alert(console.log(JSON.stringify(data)));
        //  var cmb = '<option value="">Selecione a pizza</option>';
        var cmb;
        $.each(data, function (index, value){
          alert(console.log(Object.keys(this)));
          // var cidadeid;
          cmb = cmb + '<option value="' + value.cidadeid + '">' + value.cidade + '</option>';
        });
        $('#pizzas').html(cmb);
      }, 'json');
    });
  });
</script>

PHP

 if (isset($_SERVER["HTTP_X_REQUESTED_WITH"]) && $_SERVER["HTTP_X_REQUESTED_WITH"] === "XMLHttpRequest"){
       $conexao = mysqli_connect('192.168.250.120','root','','pizzarias') or die(mysqli_error($conexao));
        $ufid = filter_input(INPUT_POST, 'ufid', FILTER_SANITIZE_NUMBER_INT);

        if ($ufid){
            $query = mysqli_query($conexao, "SELECT pizzas.IdPizzas, pizzas.TamanhoPizzas, sabores.Sabores, sabores.IdSabores FROM piz_cad_pizzas pizzas INNER JOIN piz_cad_sabores sabores ON pizzas.IdSabores = sabores.IdSabores WHERE pizzas.TamanhoPizzas=".$ufid." GROUP BY sabores.Sabores");

          while($jm = mysqli_fetch_array($query)){

                $linhas[] = array(
                   "cidadeid" => $jm["IdPizzas"],
                   "cidade" => $jm["Sabores"]
                  );
           }
          echo json_encode($linhas);
      }
  }

No SQL ele retorna corretamente. Veja a imagem abaixo:

 

retornoSQL.PNG

Edited by MTavares

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this