Ir para conteúdo
Fórum Script Brasil
  • 0

JSON com PHP


Leovip

Pergunta

Galera depois de pesquisar em muitos fóruns sem sucesso eu decidi mostrar meu problema para vocês para tentar uma resolução.

Bem, eu estou enviando um JSON de um arquivo PHP para outro através do método POST, neste formato "{"data":"12/04/2012"}", e quando recebo ele no outro arquivo e decodifico para tornar um objeto ocorre dois problemas:

1- Cada parâmetro do JSON fica com símbolos de porcentagem no início e no final.

2- E quando é a data informada no JSON de exemplo ele apaga os dois primeiros caracteres, retornando somente ('/04/2012').

Uma da minhas tentativas foi no lugar de enviar os dados com JSON, construir uma string com os parâmetros no formato de url ('nome=teste&data=12/04/2012') e enviar via POST e acessando esses valores pela varíavel global $_POST, porém o problema persistiu e o meu código ficou mais complicado.

Eu já li muito sobre problemas com essa transição dos dados(problemas de codificação), porém todas as resoluções ainda não me trouxeram resultados positivos.

Ps.: Os dados estão sendo enviados via AJAX - Jquery

Abraço

Editado por Leovip
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

fala brother...

vou postar do jeito que fiz uma vez... dando um post pra uma página php usando ajax/jquery e ela retorna uma array com encode em json em um sistema de callcenter que como era muita requisição tive de usar ajax e tal e também tive dificuldade fuçando e pesquisando consegui da seguinte forma...

somente exemplo... não ta o código original mas a idéia é a mesma...

#Página PHP que processa o post (processa.php)

<?
  //você pode pegar o post do AJAX aqui
  $parametro1 = $_POST["parametro1"]; //Script
  $parametro2 = $_POST["parametro2"]; //Brasil

  $result = array();
  $result["apelido"] = "Churc";
  $result["forum"] = "Script Brasil"; //pagação
  $result["email"] = "cebasso at gmail .com";
  $result["data"] = "01/03/1984";

  echo json_encode($result);
?>
#Pagina que da o post pra página acima e processa o resultado quebrando as arrays por chaves
function quebraArray(chave, valor)
{
  var buff = '';
  switch (chave)
    {
    case 'apelido':
    alert('O apelido é ' + valor);
    break;
    case 'forum':
    alert('O fórum é ' + valor);
    break;
    case 'email':
    alert('O email é ' + valor);
    break;
    case 'data':
    buff = valor.toString();
    var arr_buff = buff.split('/');
    alert('Dia ' + arr_buff[0] + ' Mês ' + arr_buff[1] + ' Ano ' + arr_buff[2]);
    break;
    }
}

function processaArray(arr, retorno)
{
  for (var k in arr)
    {
        if ($.isArray(arr[k]) || ((typeof arr[k] == 'object') && (arr[k] !== null)))
            processaArray(arr[k], retorno);
        else
          retorno(k, arr[k]);
      }
}

$.ajax(
    {
    url: "processa.php", //pagina la de cima...
    data: 'parametro1=Script&parametro2=Brasil',
    type: 'post',
    success: function(json)
      {
      var dados = eval('(' + json + ')');
      processaArray(dados, quebraArray);
      }
    }
  ); //$

ve se te ajuda...

abrx

Editado por Churc
Link para o comentário
Compartilhar em outros sites

  • 0

quando você coloca porcentagem na sua query json, você perde o intuito do json, transformando em uma simples string

veja como você deve criar este json na internet, e uso os metodos nativos do php para ler json

como o json_decode, e se estiver usando jquery pode usar o json() do jquery.

<?php
// Recebe uma string no formato JSON
$usuario = "{ nome: 'Fulano da Silva', ativo: true, nascimento: '2009/05/12' }";
$meuUsuario = json_decode($usuario, true);
echo $meuUsuario['nome']; // Fulano da Silva
echo $meuUsuario['nascimento']; // 2009/05/12
?>

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...