如何正确检索通过PHP和JSON实现的数据(使用解析)

时间:2015-06-20 07:12:38

标签: javascript php json parsing

大家!

我认为我的json.parse有问题

我将带有ajax的表单提交到php页面。

index.php - full code

        jQuery('#inserir_certificado_usuario').submit(function(){

            var dados = jQuery( this ).serialize();
            jQuery.ajax({
            type: "POST",
            url: "../classes/processa_evento.php",
            data: dados,
            success: function(data)
            {

            var data = data;

            var arr = JSON.parse(data);
                var i;
                var out = "";
                for(i = 0; i < arr.certificado.length; i++) {
                out += "Trabalho: " + 
                    arr.certificado[i].id_trabalho + " - " + arr.certificado[i].titulo_trabalho +
                    "<br />Usuário: " +
                    arr.certificado[i].id_usuario + " - " + arr.certificado[i].nome_autor +
                    "<br />Autenticador Nº: " +
                    arr.certificado[i].autenticador +
                    "<br /><a href='../certificados/ver_certificado.php?caso=0&autenticador="+arr.certificado[i].autenticador+"' target='certificado'>VER CERTIFICADO</a>";
                                                }
                out += "";
                document.getElementById("divCarregaDestinatarios").innerHTML = out;
            },
            error: function()
            {
           //do nothing
              }
            });
            return false;
            });

    <div id='divCarregaDestinatarios'></div>

这样收到数据。

processa_evento.php

    $autenticador = $_POST[autenticador];
    $id_certificado_base = $_POST[id_certificado_base];
    $id_evento_certificado = $_POST[id_evento_certificado];
    $id_trabalho = $_POST[id_trabalho];
    $titulo_trabalho = $_POST[titulo_trabalho];
    $id_usuario = $_POST[id_usuario];
    $nome_autor = $_POST[nome_autor];
    $timestamp_certificado = $_POST[timestamp_certificado];
    $token_trabalho = $_POST[token_trabalho];

//create code for json
    $json_resposta['certificado'] = array('id_trabalho'=>"$id_trabalho", 'titulo_trabalho'=>"$titulo_trabalho", 'id_usuario'=>"$id_usuario", 'nome_autor'=>"$nome_autor", 'autenticador'=>"$autenticador");

    $json_resposta = json_encode($json_resposta, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE);

    //replace \\n which would cause errors in JavaScript
    $json_resposta = str_replace("\\n", " ", $json_resposta);

    echo "$json_resposta";
    //echo something like this
      //{"certificado":[{"id_trabalho":"13","titulo_trabalho":"O PROBLEMA DA DEGRADAÇÃO AMBIENTAL E GESTÃO NO MUNICÍPIO DE GUARAMIRANGA - CEARÁ: UM OLHAR SOBRE A LEI 110\/2005","id_usuario":"8","nome_autor":"Ariana  Rodrigues Bezerra ","autenticador":"OHIC.SRZL.NZAT.W2PQ.A5X0.KYKD"}]}

因此,返回index.php我使用&#34;成功方法&#34;从页面(processa_evento.php)通过ajax检索一些数据:

index.php
    ...
    success: function(data)
            {

            var data = data;
    ...

我检索完数据后,我想使用此代码创建一些带有javascript和数据的html元素:

index.php
    ...
    var arr = JSON.parse(data);
                var i;
                var out = "";
                for(i = 0; i < arr.certificado.length; i++) {
                out += "Trabalho: " + 
                    arr.certificado[i].id_trabalho + " - " + arr.certificado[i].titulo_trabalho +
                    "<br />Usuário: " +
                    arr.certificado[i].id_usuario + " - " + arr.certificado[i].nome_autor +
                    "<br />Autenticador Nº: " +
                    arr.certificado[i].autenticador +
                    "<br /><a href='../certificados/ver_certificado.php?caso=0&autenticador="+arr.certificado[i].autenticador+"' target='certificado'>VER CERTIFICADO</a>";
                                                }
                out += "";
                document.getElementById("divCarregaDestinatarios").innerHTML = out;

但有些我在index.php上遇到此错误(mozilla firebug):

SyntaxError:JSON.parse:JSON数据第1行第1列的意外字符的console.log(JSON.parse(数据))

发生了什么事?我是新来的。有人可以帮帮我吗? 最好的问候,伙计们!

0 个答案:

没有答案