Foros del Web » Programando para Internet » Javascript »

Problema con Ajax al cargar dato dentro de div

Estas en el tema de Problema con Ajax al cargar dato dentro de div en el foro de Javascript en Foros del Web. Hola a todos, mi problema: tengo 2 jsp uno que es registrar.jsp y otro mensaje.jsp lo que sucede es que al usar ajax con ayuda ...
  #1 (permalink)  
Antiguo 05/01/2013, 01:33
 
Fecha de Ingreso: octubre-2009
Mensajes: 97
Antigüedad: 14 años, 6 meses
Puntos: 1
Pregunta Problema con Ajax al cargar dato dentro de div

Hola a todos, mi problema:
tengo 2 jsp uno que es registrar.jsp y otro mensaje.jsp

lo que sucede es que al usar ajax con ayuda de jquery intento cargar la pagina mensaje.jsp en un div que se encuentra dentro de registrar.jsp,

funciona, se muestra, el problema es que todo el contenido que jala mensaje.jsp (osea la parte dinamica) no se muestra me aparece "null" pero la parte estática si carga, creo que el problema es el ajax, porque cuando intento hacerlo de la forma común, osea que se cargue la pagina aparte(no dentro de un div) si me carga los mensajes dinamicos.

este es mi codigo:
http://www.subirimagenes.com/imagen-5-8220330.html


gracias por su respuestas

Última edición por johannes13; 05/01/2013 a las 01:38
  #2 (permalink)  
Antiguo 05/01/2013, 06:32
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Problema con Ajax al cargar dato dentro de div

@johannes13

tan difícil es poner ese código como código en el post (bbcode CODE ó HIGHLIGHT]
y no como una imágen?

Por que hacer un load del post?
el div pag_mensaje, lo tenés?, dónde manejás x y a?

En todo caso algo asi, pero sería una cosa o la otra
Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <html lang="es-ar">
  3. <meta charset="utf-8" />
  4. <title>Html5</title>
  5. <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
  6. <script type="text/javascript">
  7. //<![CDATA[
  8. $(document).ready(function(){
  9.  
  10. $('#procesarform').click(function() {  
  11. var datos = $("#form_registro").serialize();
  12. $.post('test.php',datos,function(respuesta){
  13. alert(respuesta); //Mostramos un alert del resultado devuelto por el php
  14. $("#mensaje").html(respuesta);
  15. });
  16. }); // fin click procesaform
  17.  
  18. $('#conload').click(function() {  
  19.     var elNombre = $('#nombre').val();
  20.     var elApellido = $('#apellido').val();
  21. $('#mensaje').load('test.php',{'nombre': elNombre, 'apellido': elApellido})
  22. });// fin click conload
  23.  
  24.  
  25. }); //fin d.ready
  26. //]]>
  27. </head>
  28. <form action="test.php" method="post" id="form_registro">
  29. <p>
  30. nombre: <input type="text" value="" name="nombre" id="nombre" /><br />
  31. apellido: <input type="text" value="" name="apellido" id="apellido" /><br />
  32. <input type="submit" name="procesarforn" value="enviar" id="procesarform" onclick="return false;">
  33. </p>
  34. <p>usando load<br />
  35. <button id="conload" onclick="return false;">usar load() en lugar de post()</button>
  36. </p>
  37. </form>
  38.  
  39.  
  40. <div id="mensaje">
  41.     <!-- respuesta del envío del form -->
  42. </div>
  43.  
  44. </body>
  45. </html>

test.php

Código PHP:
Ver original
  1. <?php
  2. echo "Nombre: " . $_POST['nombre'];
  3. echo " - ";
  4. echo "Apellido: " . $_POST['apellido'];
  5. ?>

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 05/01/2013, 09:41
 
Fecha de Ingreso: octubre-2009
Mensajes: 97
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: Problema con Ajax al cargar dato dentro de div

gracias por eso de poner codigo no sabia :(

pero mi codigo lo hago en jsp osea java en php el codigo me funciona perfect osea el ajax si funciona.

Mi problema no es pasar variable a un div, el problema es que action me manda a un Servlet que recibe los parametros del formulario (eso lo hace bien, los recibe) y el jquery funciona hasta esa parte del $post.

el problema es que es Servlet manda un mensaje "Registro realizado" y ahi es donde esta el problema porque ese mensaje va a "mensaje.jsp" pero no lo carga.

gracias por tu respuesta
  #4 (permalink)  
Antiguo 05/01/2013, 15:41
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Problema con Ajax al cargar dato dentro de div

Cita:
Iniciado por johannes13 Ver Mensaje
gracias por eso de poner codigo no sabia :(
Después de ver
http://www.forosdelweb.com/f45/probl...-ajax-1030046/
http://www.forosdelweb.com/f127/jque...nciona-982981/
http://www.forosdelweb.com/f13/body-...nciona-943664/
http://www.forosdelweb.com/f16/cambi...io-as3-894295/

Podrías haber puesto el código esta vez... Es bastante molesto tener que analizar un código a partir de una imagen.
Volviendo al problema, se desconoce el código de mensaje.jsp, asi que tampoco se sabe que debería hacer, pero por lo pronto

$('#pag_mensaje').load('mensaje.jsp',function(a){} );

no recibe ningún dato ni y function(a) tampoco hace nada. Te sugiero revises el método
http://api.jquery.com/load/

E insisto, para que hacés el $post si después x no lo utilizás

El ejemplo que yo te puse no muestra solo como poner el resultado en un div sino como enviar las variables

{'nombre': elNombre, 'apellido': elApellido}

hay que leer con más atención

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 06/01/2013, 00:11
 
Fecha de Ingreso: octubre-2009
Mensajes: 97
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: Problema con Ajax al cargar dato dentro de div

Gracias emprear, ueno voy a hacerlo mas sencillo entendiendo lo simple ya creo que podre hacer lo que requiero.

Ahora lo que simplemente quiero: es que al darle click a leer vaya al Servlet(solo quiero que haga eso) para que dentro de Servlet me mande un mensaje que cree ahi, se que podria hacerlo too en el index.jsp pero lo que quiero es que reciba un valor del Servlet.

Ahora intente de otra forma segun emprear me coloco,busque y creo que seria asi:

Index.jsp
Código:
<script>
$(document).ready(function() {
    $("#btn").click(function(e){
		e.preventDefault();
		$.ajax({
			url:'ServletMensaje',
			type:'post',
			success:function(msg){
				$("#respuesta").html(msg);
			}
		});
    });
});

</script>
</head>
<body>
<form action="" method="post">
	<input type="submit" value="leer" id="btn">
</form>

<div id="respuesta">Contenido</div>
</body>

ServletMensaje.java
Código:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		try{	
			PrintWriter respuesta=response.getWriter();
			respuesta.print("funciono el jquery");	
		}catch(Exception e){
			e.printStackTrace();
		}
	}

ahora la cosa es que cuando lo ejecuto me sale en el div id="respuesta" [object XMLDocument] , creo que eso quiere decir que no puedo coger bien el valor?
  #6 (permalink)  
Antiguo 06/01/2013, 17:30
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Problema con Ajax al cargar dato dentro de div

Visto en forma aislada debería funcionar

Código HTML:
Ver original
  1. <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
  2. $(document).ready(function() {
  3.     $("#btn").click(function(e){
  4.         e.preventDefault();
  5.         $.ajax({
  6.             url:'ServletMensaje',
  7.             type:'post',
  8.             success:function(msg){
  9.                 $("#respuesta").html(msg);
  10.             }
  11.         });
  12.     });
  13. });
  14.  
  15. </head>
  16. <form action="" method="post">
  17.     <input type="submit" value="leer" id="btn">
  18. </form>
  19.  
  20. <div id="respuesta">Contenido</div>
  21. </body>
  22. </html>

Por supuesto yo no sé de java ni como responde dicho archivo, para mi prueba yo solo cree un archivo de texto llamado 'ServletMensaje' y le puse un contenido, el cual fué recuperado en el div.
Probablemente debas agregar el parámetro
dataType: "text", a tu ajax ó
dataType: "html",
con lo cual está indicando que tipo de respuesta esperas (desde un php ó un html es html)pero en caso de un .java supongo que no, es decir

Código Javascript:
Ver original
  1. $.ajax({
  2.             url:'ServletMensaje',
  3.             type:'post',
  4.             dataType: 'html',
  5.             success:function(msg){
  6.                 $("#respuesta").html(msg);
  7.             }
  8.         });

Pero claro, no tengo forma de probarlo

Veo que has optado por $ajax en lugar de $load ó $post, pero tampoco veo parámetros a pasar. Por lo que esto

Código HTML:
Ver original
  1. <form action="" method="post">
  2.     <input type="submit" value="leer" id="btn">
  3. </form>
lo podés simplificar con
<button id="btn">Leer</button>
ó cualquier otro elemento semanticamente correcto que lleve por id "btn"

Y detalle final, a los efectos de $ajax no creo que sea lo mismo definir la url como
'ServletMensaje'
que como
'ServletMensaje.java'
Pero bueno, eso ya es tu especialidad

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #7 (permalink)  
Antiguo 06/01/2013, 18:28
 
Fecha de Ingreso: octubre-2009
Mensajes: 97
Antigüedad: 14 años, 6 meses
Puntos: 1
De acuerdo Respuesta: Problema con Ajax al cargar dato dentro de div

ohhhhhhhhhhh muchas gracia choche, si eso faltaba

dataType: 'html'

lo puse y me salio, muchas gracias *(1,000,000), si ahora que ya se devolver un simple texto, ya ire probando con load, etc, si te doy la razón en php es distinto a java; te digo que en php mi codigo de 4 lineas me da hasta una respuesta de array en php pero cuando lo pase a java no encima para subir imagenes y redireccionar a una carpeta en php es fácil pero en java ufff pero ueno eso es otro cantar.

pdta. Gracias muchas gracias, lastima que no se puede subir puntos, si no te daria 1k jejej
  #8 (permalink)  
Antiguo 06/01/2013, 18:55
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Problema con Ajax al cargar dato dentro de div

Que te haya salido es el mejor "punto"

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: ajax
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 13:59.