Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ao executar o codigo tem dado alguns problemas.
Primeiro: o DataType gera erro logo de início. Se eu troco por html, funciona melhor, todavia existe um outro erro:
function(retorno), esta funcao retorna valores nulos..
Abaixo o codigo php:
>
Citar
<?php
include("../conexao/conexao.php");
//header("Content-Type:" . "text/plain");
header("Content-Type: application/json");
$sql = "select titulo, texto, autoria from mysql";
echo $sql;
$exec = $conn->query($sql);
$rows = $exec->fetchAll( PDO::FETCH_ASSOC );
$dados = $rows;
die(json_encode($dados, JSON_PRETTY_PRINT));
?>
o script:
>
Citar
function carregarItens(){
var itens = "", url = "busca.php";
$.ajax({
url: url,
//cache: false,
dataType: "json",
beforeSend: function(){
$("h2").html("carregando...");
},
error: function(){
$("h2").html("erro");
},
success: function(retorno){
if (retorno[0].erro){
$("h2").html(retorno[0].erro);
}else{
// aqui obviamente vai dar problema, pois se a funcao retorno está retornando nulos, entao nada ira funcionar aqui.
for(var i = 0; i<=retorno.lenght; i++){
itens = "<tr>";
//itens = "<td>" + retorno*.data + "</td>";*
*
itens = "<td>" + retorno**.titulo + "</td>";*
*
itens = "<td>" + retorno**.texto + "</td>";*
*
itens = "<td>" + retorno**.autoria + "</td>";*
*
itens = itens + "</tr>";*
*
alert(itens);*
*
*
*
}*
*
$("#tabela tbody").html(itens);
*
*
**
*
*
}*
*
}*
*
});*
*
*
*
**
}
*
*
**
*
*
**
*
*
**
*
*
*
*
*
*
**
*
ja fiz isto, era echo, depois mudei para die... eles não impactam no problema...
encontrei uma função aqui mesmo neste fórum, que é a seguinte:
>
Citar
function json(){
var qtd;
var retorno;
// Resgatar valores.
json.prototype.resgatarValores = function(){
$('#resultado').html('Carregando dados...');
// Estrutura de resultado.
$.getJSON('arquivo.json', function(data){
this.qtd = data.usuarios.length;
this.retorno = '';
for (i = 0; i < this.qtd; i++){
this.retorno += 'ID: ' + data.usuarios*.id + '<br />';*
*
this.retorno += 'Nome: ' + data.usuarios**.nome + ' - ';*
*
this.retorno += 'Cidade: ' + data.usuarios**.cidade + '<br /><br />';*
*
}
*
*
**
$('#resultado').html(this.retorno);*
*
});
*
*
**
}
*
*
**
}
*
*
**
// Objeto.*
*
var obj = new json();*
*
obj.resgatarValores();
*
*
**
*
*
*
*
*
*
**
*
*
**
*
*
**
eu gostaria de trocar este codigo pelo o que consta na minha função carregarItens()
*
*
**
*
*
**
Eu tentei fazer isto, mas não deu certo, mas tambem não entendo praticamente nada do json...
*
*
**
*
*
**
Aproveitando o ensejo, na linha de código abaixo:
*
*
*
"$.getJSON('arquivo.json', function(data){"
*
**
onde consta arquivo.json, eu trocaria pelo meu arquivo php? que no caso seria consulta.php
*
*
**
*
>
Citar
onde consta arquivo.json, eu trocaria pelo meu arquivo php? que no caso seria consulta.php
Sim deveria funcionar.
De qualquer forma você precisa encontrar o seu problema....
Exemplo da foto abaixo acompanhando o que foi enviado via POST para a pagina 'recebe.php' utilizando o Chrome/(F12->Aba Network -> requisição X)
/applications/core/interface/imageproxy/imageproxy.php?img=https://camo.githubusercontent.com/266d501d06cd9a5f7fc4a7277b2710fa6e13bade/68747470733a2f2f6761627269656c646172657a7a6f2e6769746875622e696f2f696d6173746572732f696d672f616a61785f666c75786f2e706e67&key=b0170f6f536799babeebf757b530b4c5ca55b6bccc6589463ce6cc07ffb8d354" />
Depois não custa nada verificar oq recebeu na função do ajax/callback... Ex:
$.ajax({
url: url,
dataType: "json",
beforeSend: function(){
$("h2").html("carregando...");
},
error: function(){
$("h2").html("erro");
},
success: function(retorno){
console.log('Retorno ->', retorno);
}
....
...
Abre o console... veja oq retorna, ta vindo um JSON bonitinho?dentro desse JSON tem uma variavel 'error' como você espera?
Recomendo a leitura.
[https://github.com/gabrieldarezzo/desafiosInternos/tree/master/ajax#5---acompanhar-oq-foi-enviado](https://github.com/gabrieldarezzo/desafiosInternos/tree/master/ajax#5---acompanhar-oq-foi-enviado)
>
Citar
-- As vezes o problema é na requisição...-- As vezes o problema é na resposta (back-end)-- As vezes você nem sabe onde ca***os problema está....
Recomendo a leitura completa:
https://github.com/gabrieldarezzo/desafiosInternos/tree/master/ajax
Outra coisa a se atentar é que se você está enviando um JSON, ele obrigatoriamente precisa ser padrão UTF-8, caso contrario ele simplesmente traz um branco....
Caso esteja como latin/ISO-8859-1/Western a conversão da base é necessária.
Exemplo de um 'cast' in run time:
<?php
include("../conexao/conexao.php");
//header("Content-Type:" . "text/plain");
header("Content-Type: application/json");
$sql = "select titulo, texto, autoria from mysql";
echo $sql;
$exec = $conn->query($sql);
$exec->exec("set names utf8"); //Garante UTF em versão < 5.3
$rows = $exec->fetchAll( PDO::FETCH_ASSOC );
$dados = $rows;
@Dica: PDO com o nome exec ficou meio (INCEPTION)
Outra coisa que achei confusa foi você cadastrar 'registros' na tabela 'mysql'.
Tente criar uma tabela própria, evitando nomes 'especiais'.
Exemplo.. no seu acredito que uma tabela chamada 'blog', 'postagem', 'post' encaixaria melhor ;)oi,,
bem, eu já havia visto esta tela do f12 no chrome, havia um erro que apontava, erro 404 servidor não responde, mas depois sumiu este erro. De resto desta tela toda, não entendi bolufas para que serve tudo aquilo. Andei clicando aqui e ali e acabei descobrindo uma forma de debugar, mas não ajudou em nada. Tentei debugar novamente depois, mas não achei mais onde foi que cliquei.
Tenho uma dúvida, na função que está dando erro, não tem que fazer uma chamada a alguma função do jquery ou json?? Quando aprendi ajax tem uma função que é executada para chamar o ajax, neste json não tem que ter algo parecido, ou esta linha de código $.ajax({ existente na função já faz isto??
No php tente trocar o uso da função die() por um echo();