Ir para conteúdo

POWERED BY:

Arquivado

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

xKamykazex

Json

Recommended Posts

Olá, estou tendo um problema com JSON, não tive que usar até agora portanto não sei exatamente onde pode estar dando o erro, mas basicamente estou tentando fazer o seguinte:

 

Cadastrar pedidos em um banco de dados, e conforme houver atualizações, atualiza os dados no painel por ajax. Se tento ler um registro por vez funciona, mas ao fazer uma consulta que retorna mais de uma linha, o código para de funcionar...

 

os códigos que estou usando:

 

Conexão:

<?php

// Informações para conexão
$host = 'localhost';
$usuario = 'root';
$senha = '';
$banco = 'desafio_01';
$dsn = "mysql:host={$host};port=3306;dbname={$banco};charset=utf8";

try
{
    // Conectando
    $pdo = new PDO($dsn, $usuario, $senha);
}
catch (PDOException $e)
{
    // Se ocorrer algum erro na conexão
    die($e->getMessage());
}

?>

Select:

<?php
include('conn.php');
 

$consulta = $pdo->prepare('SELECT * FROM desafio WHERE status != 5 AND status = 0');


if ($consulta->execute())
{

    while ($pedido = $consulta->fetch(PDO::FETCH_ASSOC)) {

	    //$atualizaStatus = $pdo->prepare("UPDATE desafio SET status = 1 WHERE id_pedido = {$pedido['id_pedido']}");
		//$atualizaStatus->execute();
		echo json_encode($pedido);
	
	}
}
else
{
	echo json_encode("false");
}

?>

Função JS para ler os dados:

function atualizar()
{
    // Fazendo requisição AJAX
    $.post('scripts/select.php', function (pedido) {

    	alert("teste");

    	for (i=0; i < pedido.length; i++) {

	 		if (pedido != false) {

		        $('#conteudo').append('<div id="' + pedido[i].id_pedido + '">Nome: ' + pedido[i].nome + ' </br>Endereço: ' + pedido[i].endereco + ' </br>Telefone: ' + pedido[i].telefone +' </br></br>Pedido:' + pedido[i].produtos + '</br></br>Forma de pagamento: ' + pedido[i].formaPagamento + '</br></br>' + pedido[i].entrega + '</br></br>Aceitar | Recusar</div></br></br></br>');
		       	
				$("#"+pedido[i].id_pedido).css("display", "none");
				$("#"+pedido[i].id_pedido).fadeIn( "slow" );

			}
			
		}

    }, 'JSON');
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

Duas coisas:


1- Coloque o cabeçalho JSON no seu PHP:

<?php
header('Content-Type: application/json'); // Deve vir antes de qualquer saída

// Restante do seu código

?>

2- Recomendo utilizar o getJSON do jQuery

$.getJSON('scripts/select.php', function (pedido) {
// seu Código
});

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.