Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Saludos y problemas con .load()

Estas en el tema de Saludos y problemas con .load() en el foro de Frameworks JS en Foros del Web. Hola a todos, primero me presento, me llamo Alberto y soy nuevo en el foro. Llevo mucho tiempo consultando el foro pero hasta hoy no ...
  #1 (permalink)  
Antiguo 07/09/2012, 04:28
Avatar de tito87  
Fecha de Ingreso: septiembre-2012
Ubicación: Tarragona
Mensajes: 25
Antigüedad: 11 años, 7 meses
Puntos: 0
Saludos y problemas con .load()

Hola a todos,
primero me presento, me llamo Alberto y soy nuevo en el foro.
Llevo mucho tiempo consultando el foro pero hasta hoy no había tenido ninguna duda que no hubiera podido resolver aquí.

Mi problema es el siguiente:
No me funciona el comando .load() con jquery.
Tengo una página basada en Codeigniter y uso HMVC.
la cosa es que quiero que al pulsar un boton me carge el contenido que hay en un .html y me lo muestre debajo del botón. para ello uso el siguiente código:

Código:
<button type="button" id="mostrar" class="large green">
    <img src="<?=base_url()?>image/icon-new.png" /> Mostrar Pestaña
</button>
<div id="caja"> </div>

<script language="javascript" type="text/javascript">
$(document).ready(function() {	
                $('#mostrar').click(function(){$('div#caja').load('application/modules/projects/views/cuadrado.html');
                });
                

	});
</sript>

el archivo cuadrado.html es:
<div style="border: 5px #0064ea solid ">
    <p> Hola esto es una prueba </p>
</div>
Las librerias de jquery están bien incluidas, porque si uso otros comandos como append() o html() me funciona a la perfección.
El problema lo tengo con el comando load.

Espero que me podáis ayudar.
Muchas gracias.
  #2 (permalink)  
Antiguo 07/09/2012, 06:50
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Saludos y problemas con .load()

application/modules/projects/views/cuadrado.html

No puedes llamar a una vista directamente
para eso existen los controladores, necesitas un controlador que renderize la vista, estás intentando saltar el flujo del modelo MVC, el controlador se encarga de llamar al modelo y pasar los datos a la vista, y devolver la respuesta HTML, la vista NO se encarga de eso.

utiliza una consola como firebug para verificar el estado de la petición AJAX y la respuesta que envía el servidor
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 12/09/2012, 05:28
Avatar de tito87  
Fecha de Ingreso: septiembre-2012
Ubicación: Tarragona
Mensajes: 25
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Saludos y problemas con .load()

Cita:
Iniciado por maycolalvarez Ver Mensaje
application/modules/projects/views/cuadrado.html

No puedes llamar a una vista directamente
para eso existen los controladores, necesitas un controlador que renderize la vista, estás intentando saltar el flujo del modelo MVC, el controlador se encarga de llamar al modelo y pasar los datos a la vista, y devolver la respuesta HTML, la vista NO se encarga de eso.

utiliza una consola como firebug para verificar el estado de la petición AJAX y la respuesta que envía el servidor
Muchas gracias por la respuesta.

Pero entonces si yo tengo un botón que quiero que al pulsarlo me agregue un código html, este botón lo tengo en la vista, tengo que llamar en la función que ejecuta el botón al controlador y allí cargar la vista que tiene el código html y volver a la vista donde está el botón?¿?
Como puedo llamar a un controlador desde jquery?
  #4 (permalink)  
Antiguo 12/09/2012, 06:25
Avatar de YYs86  
Fecha de Ingreso: abril-2012
Ubicación: Salamanca
Mensajes: 136
Antigüedad: 12 años
Puntos: 14
Respuesta: Saludos y problemas con .load()

Únicamente lo tienes que llamar y el mismo te devolverá lo que tienes programado:

Código Javascript:
Ver original
  1. $.post('/url/controlador', { js: true }, function(data) {
  2.             $('div#caja').append(data);
  3. });
__________________
Web developer:

http://xtremgaming.es
http://leaderleague.com
  #5 (permalink)  
Antiguo 12/09/2012, 07:40
Avatar de tito87  
Fecha de Ingreso: septiembre-2012
Ubicación: Tarragona
Mensajes: 25
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Saludos y problemas con .load()

Cita:
Iniciado por YYs86 Ver Mensaje
Únicamente lo tienes que llamar y el mismo te devolverá lo que tienes programado:

Código Javascript:
Ver original
  1. $.post('/url/controlador', { js: true }, function(data) {
  2.             $('div#caja').append(data);
  3. });
No me funciona, lo que he hecho a sido lo siguiente:

Código Javascript:
Ver original
  1. <button type="button" id="mostrar" class="large green" onclick="dibujarCuadrado()">
  2.     <img src="<?=base_url()?>image/icon-new.png" /> Mostrar Pestaña
  3. </button>
  4.  
  5. <script>
  6. function dibujarCuadrado()
  7. {
  8.     $.post(base_url+ 'projects/project/dibujar_cuadrado',{js:true}, function(data) {
  9.                         $('div#caja').append(data);});
  10. }
  11. </script>


y la función a la que llamo para que me carge la vista se llama: dibujar_cuadrado
y es:
Código:
$this->load->view('projects/cuadrado.html')
la consola me dice 500 Internal server error.
Qué estoy haciendo mal??

gracias

Última edición por tito87; 12/09/2012 a las 08:24
  #6 (permalink)  
Antiguo 12/09/2012, 08:47
Avatar de tito87  
Fecha de Ingreso: septiembre-2012
Ubicación: Tarragona
Mensajes: 25
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Saludos y problemas con .load()

Solucionado:
lo que he hecho ha sido cambiar la llamada de ajax y hacerlo así:

Código PHP:
Ver original
  1. function dibujarCuadrado()
  2. {
  3.     var data=$.ajax({   url : base_url + 'projects/project/dibujar_cuadrado',
  4.             type : 'POST',
  5.                         async : false
  6.                 });
  7.     return(data.responseText);
  8.    
  9. }

y después el botón lo defino así:
Código HTML:
Ver original
  1. <button type="button" id="mostrar" class="large green" onclick="$('div#caja').append(dibujarCuadrado())">
  2.     <img src="<?=base_url()?>image/icon-new.png" /> Mostrar Pestaña

Y ya consigo añadir una página html al código.

Muchas gracias a los dos por vuestra ayuda.

Que algún admin ponga el post como solucionado, gracias.

Etiquetas: funcion, html, saludos, botones
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 11:03.