Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Error en consulta en json

Estas en el tema de Error en consulta en json en el foro de PHP en Foros del Web. Buenas noches! Necesito ayuda me he pasado todo el día intentado solucionar esto pero no he podido, estoy trabajando con el plugin datatables le tengo ...
  #1 (permalink)  
Antiguo 23/11/2014, 23:45
 
Fecha de Ingreso: septiembre-2011
Mensajes: 233
Antigüedad: 13 años, 2 meses
Puntos: 1
Error en consulta en json

Buenas noches! Necesito ayuda me he pasado todo el día intentado solucionar esto pero no he podido, estoy trabajando con el plugin datatables le tengo que colocar un enlace para eliminar, el caso es que no he podido, que tengo malo? que debo de hacer?

Código:
<?php
 require_once('conexion.php');
$consulta="SELECT Cedula, Nombre, TiempoResidencia, EstadoCivil, Profesion, Direccion FROM censodemografico";
$resultado=$conexion->query($consulta) or die('Fallo la consulta');

$ row_array =array();

if ($resultado->num_rows>0){
			
while($row=$resultado->fetch_assoc()){
$row_array[]=array(
'Cedula'=>$row['Cedula'],
'Nombre’=>$row['Nombre'],
'TiempoResidencia'=>$row['TiempoResidencia'],
'EstadoCivil'=>$row['EstadoCivil'],
'Profesion'=>$row['Profesion'],
'Direccion'=>$row['Direccion'],
‘Eliminar’=> str_split('<a data-accion="eliminar" class="editor_remove" href="'.$fila['Cedula'].'">Eliminar</a>');
}
}
 echo json_encode(array('aData' => $ row_array));
?>
  #2 (permalink)  
Antiguo 24/11/2014, 02:34
 
Fecha de Ingreso: septiembre-2014
Mensajes: 180
Antigüedad: 10 años, 2 meses
Puntos: 14
Respuesta: Error en consulta en json

¿Te devuelve algún error? ¿Puedes darnos más información para poder ayudarte?
__________________
Unelink.es - VPS, servidores dedicados, hosting y dominios. 10 años a tu lado.
  #3 (permalink)  
Antiguo 24/11/2014, 06:45
 
Fecha de Ingreso: septiembre-2011
Mensajes: 233
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Error en consulta en json

Cita:
Iniciado por json Ver Mensaje
¿Te devuelve algún error? ¿Puedes darnos más información para poder ayudarte?
Gracias json por responderme, solo me sale en la tabla "Processing" pero no me muestra nada, le quite la función str_split al enlace

pero me meto en google chrome, herramientas de desarrollo, network, selecciono el archivo listadoHab.php y lo que veo es esto:
Código:
{"aData":[{"Cedula":"20180659","Nombre":"Paula Litrell","TiempoResidencia":"12","EstadoCivil":"Soltero","Profesion":"Ingeniera","Direccion":"Bna","Eliminar":"<a data-accion=\"eliminar\" class=\"editor_remove\" href=\"20180659\">Eliminar<\/a>"}]}
Este es el código que estoy utilizando para el archivo functions.js:
Código:
function InitOverviewDataTable()
{
  oOverviewTable =$('#mytable').dataTable(
  {
    "bPaginate": true,
    "bJQueryUI": true,  // ThemeRoller-stöd
    "bLengthChange": true,
    "bFilter": true,
    "bSort": false,
    "bInfo": true,
    "bAutoWidth": true,
    "bProcessing": true,
    "iDisplayLength": 10,
    "sAjaxSource": 'include/listadoHab.php'
  });
}

$(document).ready(function () {
  InitOverviewDataTable();
});
Que tengo malo? porque no funciona?

Última edición por plitre_sys19; 24/11/2014 a las 07:00
  #4 (permalink)  
Antiguo 24/11/2014, 10:56
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 6 meses
Puntos: 320
Respuesta: Error en consulta en json

Código PHP:
Ver original
  1. echo json_encode(array('aData' => $ row_array));

Ahí esta el problema, ahora mismo no me acuerdo como se llama, pero si lo buscas en los ejemplos de la documentación lo vas a encontrar, datatables (al igual que la gran mayoria de los componentes que usan ajax) emplean un mecanismo de identificación de peticiones, es decir, caza vez que envian una peticion de datos al servidor, le envian un identificador, que generalmente es un numero, que esperan que el servidor se los "revote" o se los devuelva junto con la respuesta, lo que no recuerdo es como se llama en datatables, en su ultima version actual creo que el parametro de llama "draw" y creo tambien que en las anteriores era "sEcho" pero hace mucho que deje usar ese plugin y no me acuerdo el nombre, te toca googlearlo.

Si no revotas ese valor, datatables nunca mostrara los resultados.

En este ejemplo puedes encontrar mas información de como tienes que armar la respuesta.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #5 (permalink)  
Antiguo 30/11/2014, 12:13
 
Fecha de Ingreso: septiembre-2011
Mensajes: 233
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Error en consulta en json

Cita:
Iniciado por NSD Ver Mensaje

Si no revotas ese valor, datatables nunca mostrara los resultados.

[URL="http://www.datatables.net/examples/server_side/server_side.html"]En este ejemplo[/URL] puedes encontrar mas información de como tienes que armar la respuesta.

Hola NSD gracias por responderme, con el link del ejemplo ahora si funciona, como tenia armada la respuesta no era, analice el código y arme la respuesta como explican en el ejemplo y ahora si me funciona hasta lo adapte al mysqli, también funciona con el link hasta elimina el registro.

Pero el problema que presenta es que una vez eliminado quiero que se actualize el databale, estoy utilizando esta función:

Código:
function RefreshTable(tableId, urlData)
{
  $.getJSON(urlData, null, function( json )
  {
    table = $(tableId).dataTable();
    oSettings = table.fnSettings();
    
    table.fnClearTable(this);

    for (var i=0; i<json.aaData.length; i++)
    {
      table.oApi._fnAddData(oSettings, json.aaData[i]);
    }

    oSettings.aiDisplay = oSettings.aiDisplayMaster.slice();
    table.fnDraw();
  });
}
Si funciona si lo coloco que se ejecute tanto segundo pero cuando lo llamo después de eliminar el registro en la consola me sale esto:

Código:
<b>Notice</b>:  Undefined index: sSearch in <b>C:\xampp\htdocs\ejemplofinal1\example_support\server_processing.php</b> on line <b>69</b><br />
<b>Notice</b>:  Undefined index: bSearchable_0 in <b>C:\xampp\htdocs\ejemplofinal1\example_support\server_processing.php</b> on line <b>83</b><br />
<b>Notice</b>:  Undefined index: bSearchable_1 in <b>C:\xampp\htdocs\ejemplofinal1\example_support\server_processing.php</b> on line <b>83</b><br />
<b>Notice</b>:  Undefined index: bSearchable_2 in <b>C:\xampp\htdocs\ejemplofinal1\example_support\server_processing.php</b> on line <b>83</b><br />
<b>Notice</b>:  Undefined index: bSearchable_3 in <b>C:\xampp\htdocs\ejemplofinal1\example_support\server_processing.php</b> on line <b>83</b><br />
<br />
<b>Notice</b>:  Undefined index: bSearchable_4 in <b>C:\xampp\htdocs\ejemplofinal1\example_support\server_processing.php</b> on line <b>83</b><br />
<b>Notice</b>:  Undefined variable: sOrder in <b>C:\xampp\htdocs\ejemplofinal1\example_support\server_processing.php</b> on line <b>107</b><br />
<br />
Este es el código que utilizo en success del ajax después que elimino:
Código:
 success: function(response){

		            	// Validar mensaje de error
		            	if(response.respuesta == false){
		            		alert(response.mensaje);
		            	}
		            	else{

		            		// si es exitosa la operación
		                	$('#dialog-borrar').dialog('close');
		                	RefreshTable('#example', 'example_support/server_processing.php');
		                	alert(response.mensaje);

						}
Si me pudieran ayudar, que tengo malo en el código? como puedo hacer para que después que elimino un registro se actualice la tabla con la función RefreshTable?
  #6 (permalink)  
Antiguo 01/12/2014, 09:04
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 6 meses
Puntos: 320
Respuesta: Error en consulta en json

Esa funcion (que por cierto, es de javascript no de php) no tiene razón para existir, lo que debes hacer en vez de eso seria, en primer lugar, guardar la tabla en una variable cuando la creas:

Código Javascript:
Ver original
  1. var datatable_example = $('#example').dataTable( {
  2.         "bProcessing": true,
  3.         "bServerSide": true,
  4.         "sAjaxSource": "../examples_support/server_processing.php"
  5. });

Luego, usar esa variable:
Código Javascript:
Ver original
  1. success: function(response){
  2.                         // Validar mensaje de error
  3.                         if(response.respuesta == false){
  4.                             alert(response.mensaje);
  5.                         }
  6.                         else{
  7.  
  8.                             // si es exitosa la operación
  9.                             $('#dialog-borrar').dialog('close');
  10.                              datatable_example.fnDraw();
  11.                             alert(response.mensaje);
  12.  
  13.                         }

No me extiendo mas porque esto ya pasa a ser tema de javascript
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #7 (permalink)  
Antiguo 01/12/2014, 12:28
 
Fecha de Ingreso: septiembre-2011
Mensajes: 233
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Error en consulta en json

Muchas gracias NSD ahora si se actualiza la tabla después que elimino algún registro

Etiquetas: json, select
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 14:44.