Foros del Web » Programando para Internet » Jquery »

Traer array json de php a javascript con ajax

Estas en el tema de Traer array json de php a javascript con ajax en el foro de Jquery en Foros del Web. Hola Soy principiante en el tema de ajax y jquery. Estoy programando un sistema gestion de socios de una entidad, y tengo por un lado ...
  #1 (permalink)  
Antiguo 09/02/2015, 11:31
 
Fecha de Ingreso: febrero-2015
Mensajes: 2
Antigüedad: 9 años, 2 meses
Puntos: 0
Pregunta Traer array json de php a javascript con ajax

Hola
Soy principiante en el tema de ajax y jquery. Estoy programando un sistema gestion de socios de una entidad, y tengo por un lado un archivo donde se quiere mostrar una tabla con datos obtenidos de una base de datos, osea que la tabla se armaria de acuerdo con la cantidad de registros devueltos. Tengo un script de php que realiza la consulta correspondiente y vuelca todo lo obtenido en un array bidimensional y lo pasa a formato JSON para su posterior envio. El script javasrcipt se dispara al terminar de cargar el DOM pero no logro que la conexion ajax y la funcion que procesa los datos se ejecuten. Les dejo el script de javascript y el de php por la dudas que este mal pero no creo porque ejecutando el script de php solo devuelve los datos correctos.

Archivo padron.php (contiene el script javascript)

Código:
<html>
    <head>
        <meta charset="UTF-8">
        <title>Padron</title>
        <script src="jquery-2.1.3.js"></script>
        <script>
            $(document).ready(function(){
                console.log("Funcion Peticion disparada");
                $.getJSON("http://localhost/Sistema/padron2.php", function(data, estado, obj){
                    console.log("funcion ajax diparada");
                  $.each(function(i,fila){
                      console.log("funcion de recorrido disparada");
                    $("#padron").append("<tr>");
                        $("#padron").append("<td><input type='checkbox' value='"+ fila.id+"'/></td>");
                        $("#padron").append("<td>"+fila.apellido+"</td>");
                        $("#padron").append("<td>"+fila.nombre+"</td>");
                        $("#padron").append("<td>"+fila.dni+"</td>");
                        $("#padron").append("<td>"+fila.fn+"</td>");
                        $("#padron").append("<td>"+fila.sexo+"</td>");
                        $("#padron").append("<td>"+fila.club+"</td>");
                        $("#padron").append("<td>"+fila.esc+"</td>");
                        $("#padron").append("<td>"+fila.libre+"</td>");
                        $("#padron").append("<td>"+fila.dom+"</td>");
                        $("#padron").append("<td>"+fila.cp+"</td>");
                        $("#padron").append("<td>"+fila.loc+"</td>");
                        $("#padron").append("<td>"+fila.prov+"</td>");
                        $("#padron").append("<td>"+fila.tel+"</td>");
                        $("#padron").append("<td>"+fila.rama+"</td>");
                        $("#padron").append("<td>"+fila.estado+"</td>");
                    $("#padron").append("</tr>");
                                        
                });
            }); 
        }) 
            
        </script>
Archivo padron2.php (El que realiza la consulta y devuelve los datos)

Código:
<?php
    $UserID= $_COOKIE['id_user'];
    $con1= new mysqli('127.0.0.1', 'root', '4984313', 'bd_napam');
    if ($con1->connect_errno) {
        die("No se puede conectar a BD %d" .$con1->connect_errno);
        exit();   
    }
    if (!$rs=$con1->query("SELECT Tipo, Club FROM user WHERE Id=$UserID")) {
                die ("Error en consulta: " .$con1->connect_error);
    }
    while ($fila= mysqli_fetch_array($rs)) {
        $tipo=$fila['Tipo'];
        $club=$fila['Club'];
    }
    mysqli_free_result($rs);
    mysqli_close($con1);
            
    switch ($tipo){
        case 1:
            $con2=  new mysqli('127.0.0.1', 'root', '4984313', 'bd_napam');
            if ($con2->connect_error) {
                die("Error al conectar con base de datos" . $con2->connect_error);
                exit();
            }
            
            
            if(!$rs2=$con2->query('SELECT * FROM padron')){
                die("Error en la consulta");
                exit();
            }
                                        
            while ($fila=  mysqli_fetch_array($rs2)) {                
                $arrayresult[]= array (
                    "id" => $fila['ID'],
                    "apellido" =>$fila['Apellido'],
                    "nombre"=>$fila['Nombre'],
                    "dni"=>$fila['DNI'],
                    "fn"=>$fila['FechaNac'],
                    "sexo"=>$fila['Sexo'],
                    "club"=>$fila['Club'],
                    "esc"=>$fila['CategoriaE'],
                    "libre"=>$fila['CategoriaL'],
                    "dom"=>$fila['Domicilio'],
                    "cp"=>$fila['CP'],
                    "loc"=>$fila['Localidad'],
                    "prov"=>$fila['Provincia'],
                    "tel"=>$fila['Telefono'],
                    "rama"=>$fila['Rama'],
                    "estado"=>$fila['Estado'],
                    "alta"=>$fila['FechaAlta'],                          
                ); 
                
            }
            
            break;
                case  2:
                    $con=  mysql_connect('localhost', 'root', 'root');
                    $db= mysql_select_db('Napam', $con);
                    $ssql= "'SELECT * FROM Padron WHERE Club ='$club";
                    $result= mysql_db_query($db, $ssql);
                               
                    for ($index = 0; $index < mysql_numrows($result); $index++) {
                        $arrayresult[]= array (
                            "id" => $result[$index]['id'],
                            "apellido" =>$result[$index]['Apellido'],
                            "nombre"=>$result[$index]['Nombre'],
                            "dni"=>$result[$index]['DNI'],
                            "fn"=>$result[$index]['FechaNac'],
                            "sexo"=>$result[$index]['Sexo'],
                            "club"=>$result[$index]['Club'],
                            "esc"=>$result[$index]['CategoriaE'],
                            "libre"=>$result[$index]['CategoriaL'],
                            "dom"=>$result[$index]['Domicilio'],
                            "cp"=>$result[$index]['CP'],
                            "loc"=>$result[$index]['Localidad'],
                            "prov"=>$result[$index]['Porvincia'],
                            "tel"=>$result[$index]['Telefono'],
                            "rama"=>$result[$index]['Rama'],
                            "estado"=>$result[$index]['Estado'],
                            "alta"=>$result[$index]['FechaAlta'],                          
                        ); 
                        
                        
                    }
                    break;
            }
           
            echo (json_encode($arrayresult));
Espero que la info sea suficiente y me puedan indicar el o lo errores.
desde ya gracias
  #2 (permalink)  
Antiguo 11/02/2015, 07:35
(Desactivado)
 
Fecha de Ingreso: abril-2013
Ubicación: rosario
Mensajes: 248
Antigüedad: 11 años
Puntos: 17
Respuesta: Traer array json de php a javascript con ajax

che, porque trabajas con fila y no con data?, es decir , data no es el array devuelto por getJSON?
  #3 (permalink)  
Antiguo 11/02/2015, 11:41
 
Fecha de Ingreso: febrero-2015
Mensajes: 2
Antigüedad: 9 años, 2 meses
Puntos: 0
Información Respuesta: Traer array json de php a javascript con ajax

Ahora lo tengo asi
Código:
 $(document).ready(function(e){
                console.log("Funcion Peticion disparada");
                $.ajax({
                    type: "POST",
                    datatype: "json",
                    url: 'Padron2.php',
                    success: function(data, estado, obj){
                        
                        console.log("funcion ajax diparada");
                        $.each( data, function(){
                            console.log("funcion de recorrido disparada");
                            
                            $("#padron").append("<tr>");
                                $("#padron").append("<td><input type='checkbox' value='"+ this.id+"'/></td>");
                                $("#padron").append("<td>" + this.apellido +"</td>");
                                $("#padron").append("<td>"+this.nombre+"</td>");
                                $("#padron").append("<td>"+this.dni+"</td>");
                                $("#padron").append("<td>"+this.fn+"</td>");
                                $("#padron").append("<td>"+this.sexo+"</td>");
                                $("#padron").append("<td>"+this.club+"</td>");
                                $("#padron").append("<td>"+this.esc+"</td>");
                                $("#padron").append("<td>"+this.libre+"</td>");
                                $("#padron").append("<td>"+this.dom+"</td>");
                                $("#padron").append("<td>"+this.cp+"</td>");
                                $("#padron").append("<td>"+this.loc+"</td>");
                                $("#padron").append("<td>"+this.prov+"</td>");
                                $("#padron").append("<td>"+this.tel+"</td>");
                                $("#padron").append("<td>"+this.rama+"</td>");
                                $("#padron").append("<td>"+this.estado+"</td>");
                            $("#padron").append("</tr>");
                                        
                        });
                          
                    },
                    error: function(xhr, op, err){ alert (xhr.onerror);
                    alert(err);
                    }
                });
        });
haciendo pruebas y harcodeando el codigo la variable data donde supuestamente esta el array
  #4 (permalink)  
Antiguo 12/02/2015, 17:26
Avatar de Djoaq  
Fecha de Ingreso: septiembre-2012
Ubicación: Barcelona
Mensajes: 271
Antigüedad: 11 años, 7 meses
Puntos: 38
Respuesta: Traer array json de php a javascript con ajax

Usa :

var datos =JSON.parse(data);
Luego append , html etc

Luego imprime console.log y veras que ya prodras acceder a los datos algo así como:
datos[indice matriz , 0 o 1 ,2,3etc][llave al valor];
Un saludo!
  #5 (permalink)  
Antiguo 13/02/2015, 02:08
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Traer array json de php a javascript con ajax

Si colocaras dataType en lugar de datatype, podrías tratar a la respuesta como un objeto JSON, sin necesidad de parsearlo.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: ajax, javascript, json, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:15.