Los foros del Guille

Ya está a la venta Novedades de Visual Basic 9.0

Si no encuentras respuesta, puedes buscar en el sitio del Guille

Google
 
Selecciona el foro y pulsa en mostrar:     Mostrar 
De tu interés (algunos de los avisos publicados)

15/sep/2007
Nueva opción para ver los hilos resueltos: Ver los mensajes resueltos
Por favor acuérdate de marcar los que te respondan correctamente para que esto sea de utilidad. Gracias.

  Foro: PHP.General Cantidad:  Desde:   Hasta:    Aplicar   Responder 
Respuestas a: 51341 - actualizar grid en php
IDAsuntoFechaNick 
51341 actualizar grid en php18/12/09 05:36Black   
Que tal...
estoy empezando a utilizar php con mysql y jquery
y me salio el siguiente problema... haber si me pueden ayudar

Cargo mi pagina inicial (un catalogo) y por medio de jquery(Cuando se carga la pagina) voy a una pagina de php y obtengo una consulta de la bd y la convierto a formato json para mostrarla del lado del cliente en forma de grid, hasta ahí todoo bien.

ahora cuando inserto un nuevo registro, hago los mismos pasos... con jquery voy a una pagina php le paso los parametros y los inserto, regreso al cliente, mando a llamar a la funcion que me hace lo de arriba (lo que escribi primero), que va a la bd a obtenerme la consulta para mostrarme el grid con el nuevo registro.
pero este se queda con los mismos datos !!!!... lo reviso desde mysql, osea corro un query para ver si me lo guardo y siii!! si lo guardo !!!, refresco la pagina con F5 y no se muestra el nuevo registro en el grid !!

para que se vea el nuevo registro en el grid, tengo q cerrar la pagina y la vuelvo a abrir y ahora si se ve el registro... :S

alguna idea de por que pasa esto??

este es el codigo q uso para la consulta y el insert

//OBTENER CONSULTA
require_once("../JSON/JSON.php");
$json = new Services_JSON;

$conexion = Conectarse();
$stored="Select IdServicio, Servicio, Precio From tblServicio";
$transaccion = mysql_query($stored, $conexion);
mysql_close($conexion);

$totEmp = mysql_num_rows($transaccion);
while ($rowEmp = mysql_fetch_assoc($transaccion)) {
$data[] = $rowEmp;
}
echo $json->encode($data);

//INSERTAR
$conexion = Conectarse();
$stored="call spa_Servicio(".$IdServicio.", '".$Servicio."', ".$Precio.")";
$transaccion = mysql_query($stored, $conexion);
mysql_close($conexion);

if (!$transaccion) {
die('Invalid query: ' . mysql_error());
echo "|error|";
}else
echo "|ok|";

IDAsuntoFechaNick 
51394 Re: actualizar grid en php (Resp: 51341)29/12/09 15:33nestorA   
el problema radica en algo llamado "cache"
Cuando AJAX hace la peticion al servidor, este en primer lugar devuelve una respuesta que luego es almacenada en el cliente. Para que AJAX mantenga siempre la respuesta del servidor se debe enviar la cabecera adecuada (Si no estoy mal se usa una funcion llamada "setRequestHeader" del objeto XML HTTP o en su defecto desde PHP usar la funcion "header"

He visto una solucion un poco mas simple, y es agregar un parametro con un numero aleatorio a la cadena de peticion de AJAX. En esta web hay un buen PDF sobre AJAX y habla entre otras cosas de jQuery http://www.librosweb.es


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.
IDAsuntoFechaNick 
51396 Re: actualizar grid en php (Resp: 51394)29/12/09 15:43Black   
Muchas gracias por responder, ya he resuelto el problema
poniendo esto al inicio de mi pagina php

header("Cache-Control: no-cache, must-revalidate" );
header("Pragma: no-cache" );
header("Content-type: text/x-json");


Ahora me surgio otro detalle.
al ejecutar un stored desde php, pero q sean un stored q me regrese resultados no me funcciona
no se porque, sera q cuando haces el llamado de un stored de consulta se tiene q hacer diferente?

Lo hago asi:
function Obtener($Fecha){
$conexion = Conectarse();
$stored="call spq_Obtener('".$Fecha."')";
$transaccion = mysql_query($stored, $conexion);

mysql_close($conexion);

$totEmp = mysql_num_rows($transaccion);

while ($rowEmp = mysql_fetch_assoc($transaccion)) {
$data[] = $rowEmp;
}
echo "{Empty : false,TableName: '', Rows:".str_replace('"',"'",json_encode($data ))."}";
}

------------------------------------------------------------
y como no me funciona tengo q hacerlo asi;
------------------------------------------------------------
function Obtener($Fecha){
$conexion = Conectarse();
$stored="Select
P.IdPago,
C.IdCliente,
C.Nombre,
P.FechaInicio as Fecha,
P.Mensualidad,
P.Inscripcion,
P.Descuento,
P.Total
From tblPagos P
Inner Join tblCliente C
On P.IdCliente=C.IdCliente
Where P.FechaInicio='".$Fecha."'";

$transaccion = mysql_query($stored, $conexion);

mysql_close($conexion);

$totEmp = mysql_num_rows($transaccion);

while ($rowEmp = mysql_fetch_assoc($transaccion)) {
$data[] = $rowEmp;
}
echo "{Empty : false,TableName: '', Rows:".str_replace('"',"'",json_encode($data ))."}";
}


Solo los de consulta me hacen eso, ya que los de Insert, Delete y Update si me funcionan bien


Saludos


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.
IDAsuntoFechaNick 
51402 Re: actualizar grid en php (Resp: 51396)29/12/09 16:38nestorA   
Posiblemente la version de MySQL no soporta procedimientos almacenados.
Otra opcion que puede funcionar es usando la extension MySQLi que es una especie de adaptador para MySQL.

en un foro hay algo parecido http://www.forosdelweb.com/f18/procedimientos-almacenados-mysql-desde-php-454139/


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.

 
(c) Guillermo 'guille' Som, 2005-2017  - foros.elGuille v1.0.5.3 (23/Mar/2009 14:50 GMT +1)  - (ASP.NET 2.0 v2.0.50727.8762)
 
Usuarios activos: 103 - App. iniciada: 24/11/2017 1:38:24 GMT - La hora GMT del servidor es: 24/11/2017 02:02:39 GMT