AJAX - Mostrar datos en un div al cargar la página (Sin botones ni formularios)

   
Vista:
Imágen de perfil de Jhon

Mostrar datos en un div al cargar la página (Sin botones ni formularios)

Publicado por Jhon (9 intervenciones) el 03/08/2016 01:55:44
Saludos gente.

He hecho algunas cosillas en PHP y MYSQL pero no he usado Ajax anteriormente. Hasta ahora he logrado mandar por AJAX información de un formulario al servidor y cargar la respuesta en un div.
Pero necesito que al cargar una página sin formularios, ni oprimir botones ni nada, me muestre unos datos que solicito a la base de datos.
Se que existe un evento load pero me dijeron que se carga en el body y la etiqueta body no está en mis vistas sino en el núcleo de mi framework.
He intentado cargarla en un div pero no hace nada la página.
Supongo que el problema es de sintaxis pero no sé cómo hacerlo y no he encontrado un ejemplo parecido.
¿Cómo se llama por ajax una query de mysql para que inmediatamente cargue la vista se muestre?

Gracias de antemano por la ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Vainas

Mostrar datos en un div al cargar la página (Sin botones ni formularios)

Publicado por Vainas (71 intervenciones) el 03/08/2016 19:17:51
Buenas:

Lo primero es siempre la documentacion de la libreria: http://api.jquery.com/load/

Y como sale en su primer ejemplo probar con un html:

1
$( "#result" ).load( "ajax/test.html" );

Sino funciona asi lo siguente es probar con $.get(url, data, success)

Coloca tu codigo dentro de document ready por que sino te dara un error de carga. puede que tengas algun warning en la consola diciendo que el navegador no puede cargar objetos de forma asincrona... pero es solo una advertencia.

Comentanos y trae codigo de lo que has probado.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Jhon

Mostrar datos en un div al cargar la página (Sin botones ni formularios)

Publicado por Jhon (9 intervenciones) el 04/08/2016 03:19:40
Pensé que sería crear un div #result y hacer:
1
$( "#result" ).load( "<?php echo URI_ROOT . "Disponibilidad/Mostrar" ?>" );
Pero por lo que veo no funciona así.
Yo quiero que al abrir la vista se muestre en el div los datos de ésta función de mi controlador:
1
2
3
4
public function mostrar() {
       $dbModel = Resource::getModel("DisponibilidadModel");
       $results = $dbModel->mostrar();
    }
Gracias por la ayuda bro. Seguiré probando a ver si doy.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Vainas

Mostrar datos en un div al cargar la página (Sin botones ni formularios)

Publicado por Vainas (71 intervenciones) el 04/08/2016 07:37:57
Buenas de nuevo:

El planteamiento que tienes esta bien. Puedes mirar en la consola de chrome en la zona de codigo si la url que le llega al cliente es correcta. por otro lado puedes comprobar que tu URI_ROOT . "Disponibilidad/Mostrar" da algun resultado. Los metodos en un controlador se suelen llamar acciones. Creo que tu codigo es magento.

Estas llamando a un modelo pero desconozco si $dbModel->mostrar(); carga algun layout. Podrias comprobar como he dicho antes que la url cargue algun dato y comprobar la consola.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Jhon

Mostrar datos en un div al cargar la página (Sin botones ni formularios)

Publicado por Jhon (9 intervenciones) el 04/08/2016 18:04:33
Mira, este es mi modelo, no puede ser más simple porque sólo estoy probando:
1
2
3
4
5
6
public function mostrar(){
        $statment = $this->db->prepare("SELECT *FROM adicionales;");
        $statment->execute();
        $results = $statment->fetch(PDO::FETCH_ASSOC);
        return var_dump($results);
    }

La query está bien. Mira esto:

En la consola sale esto en network:
1
script.js?201608	404	script	Disponibilidad:1	0 B	60 ms

Si directamente escribo en mi navegador la url me sale:

1
array(7) { ["pkadicional"]=> string(1) "1" ["fkcodigopuesto"]=> string(3) "755" ["fkcedulaguarda"]=> string(8) "72006771" ["fkcedulaadministrador"]=> string(8) "72240535" ["observacionesdisponibilidad"]=> string(23) "DISPONIBILIDAD FICTICIA" ["notificadodisponibilidad"]=> string(3) "SÍ" ["cumpliodisponibilidad"]=> string(2) "NO" }

Que es exactamente lo que debería salir.

Gracias por la ayuda, de nuevo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Vainas

Mostrar datos en un div al cargar la página (Sin botones ni formularios)

Publicado por Vainas (71 intervenciones) el 04/08/2016 19:14:59
Vale tu modelo esta bien pero retomemos concepto.

Tu tienes por un lado el modelo y por otro la vista. La vista es lo que te esta fallando a ti. No se que framework en php estas usando pero cuando envias la vista (o la preparas) en este caso al hacer un var_dump con los datos de una consulta en sql, estas enviando texto plano. Igual $( "#result" ).load(....); esta esperando html y no eso.

Es lo unico que se me ocurre. Prepara un demo.html donde tengas solo una lista con ul y li a ver si te la muestra. Quizas en vez de enviar un var_dump(), podrias enviar un. echo '<pre>' . var_dump($variable) . '</pre>'; a ver si te da los datos. El fallo lo veo en lo que envias al navegador y lo que espera recibir load.

En las herramientas de chrome para desarrolladores en la parte de network puedes ver si se esta haciendo la llamada a tu php.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Jhon

Mostrar datos en un div al cargar la página (Sin botones ni formularios)

Publicado por Jhon (9 intervenciones) el 06/08/2016 19:51:27
Cordial saludo.

Con mucho retraso Vainas, pero vine a decirte que tenías razón pero yo no me había dado cuenta. El problema es que por descuido me salté olímpicamente tu recomendación de usar document ready.
Ahora que lo hice sí funciona.

Muchas gracias, bro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Vainas

Mostrar datos en un div al cargar la página (Sin botones ni formularios)

Publicado por Vainas (71 intervenciones) el 06/08/2016 21:14:53
Oléeee

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar