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

traer pagina con ajax

Estas en el tema de traer pagina con ajax en el foro de Frameworks JS en Foros del Web. Estimados, necesito de su ayuda. tengo mi pagina (padre) por la cual con el codigo ajax llamo a otra pagina dentro de un div (del ...
  #1 (permalink)  
Antiguo 01/08/2010, 21:57
 
Fecha de Ingreso: julio-2007
Mensajes: 58
Antigüedad: 17 años, 4 meses
Puntos: 0
traer pagina con ajax

Estimados, necesito de su ayuda.

tengo mi pagina (padre) por la cual con el codigo ajax llamo a otra pagina dentro de un div (del padre).

el asunto es el siguiente como rescato los text de la pagina (hijo) para psarlos por el objeto ajax que lo tengo en mi pagina (padre), lo he intentado pero no me reconoce los parametros y me sale indefinido.

Espero haberme hecho entender.

desde ya gracias.
  #2 (permalink)  
Antiguo 02/08/2010, 07:42
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: traer pagina con ajax

Hola

Veamos tienes una página (A) y en div de esa página cargas otra página (B) y ahora quieres recoger los text. ¿Qué quieres decir con text?

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 02/08/2010, 11:18
 
Fecha de Ingreso: julio-2007
Mensajes: 58
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: traer pagina con ajax

Los text Los input (las caja de texto) de este formulario.

Los necesito recoger con ajax y procesarlos, pero no se como ya que el paggina (a) tengo otro formulario (conotro nombre) ahi cero drama, pero con la pagina (b) es donde me estoy quedando pegado.

Espero se entienda.
  #4 (permalink)  
Antiguo 02/08/2010, 11:24
 
Fecha de Ingreso: julio-2007
Mensajes: 58
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: traer pagina con ajax

te explico un poco mas la pagina que traigo en el div es asp, y tiene 2 select (combo box) y una lista que los conecto con la base de datos(sql) y quiero que al momento que le presione el boton ingresar estos sean tomados por el objeto ajax.

en el fono la pregunta es como tomo los datos del formulario de otra pagina (b) si el objeto co tengo en la pagina (a).

Me puedes ayudar.

Desde ya gracias.
  #5 (permalink)  
Antiguo 02/08/2010, 11:31
 
Fecha de Ingreso: octubre-2004
Mensajes: 18
Antigüedad: 20 años
Puntos: 0
Respuesta: traer pagina con ajax

Bueno si tienes campos o text concretos osea una cierta cantidad te recomiendo que simplimente hagas el llamado y tomes los valores normalmente, porque ya son parte de tu DOM osea ya estan dentro de la pagina. Y si tomas o haces llamado de sus valores tendria que devolverte los que se cargan en ese momento.
  #6 (permalink)  
Antiguo 02/08/2010, 12:27
 
Fecha de Ingreso: julio-2007
Mensajes: 58
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: traer pagina con ajax

es que ese es el problema no me reconoce el form que viene de la otra pagina menos la info, me sale indefinido.
  #7 (permalink)  
Antiguo 02/08/2010, 13:29
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: traer pagina con ajax

Hola

Intenta con esta pequeña prueba
x.html
Código Javascript:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html xmlns="http://www.w3.org/1999/xhtml"lang="es" xml:lang="es">
  3. <head>
  4. <script type="text/javascript">
  5.  var ns4 = (document.layers)? true:false
  6. var ie4 = (document.all)? true:false
  7. var ns6 = (document.getElementById)? true:false
  8.  
  9. function captura_objeto(idnombre) {
  10.     if (ns6)
  11.     {
  12.     return document.getElementById(idnombre);
  13.     }
  14.     else if (ie4)
  15.     {
  16.     return document.all[idnombre];
  17.     }
  18.     else if (ns4)
  19.     {
  20.     return document.layers[idnombre];
  21.     }
  22.     else
  23.     {
  24.     return null;
  25.     }
  26. }
  27.  
  28.  
  29. function creaAjax(){
  30.     var ajaxs = ["Msxml2.XMLHTTP","Msxml2.XMLHTTP.4.0","Msxml2.XMLH TTP.5.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];
  31.     var ajax = false;
  32.     for(var i=0 ; !ajax && i<ajaxs.length ; i++){
  33.         try{
  34.             ajax = new ActiveXObject(ajaxs[i]);   // Internet Explorer
  35.         }
  36.         catch(e) {
  37.             ajax = false;
  38.         }
  39.     }
  40.     if(!ajax && typeof XMLHttpRequest!='undefined') {
  41.         ajax = new XMLHttpRequest();  // Firefox, Opera 8.0+, Safari
  42.     }
  43.     return ajax;
  44. }
  45.  
  46.  
  47. function TraeForm() {
  48. var url = "xx.html"
  49. var ajax=creaAjax();
  50. var cargar = captura_objeto("cargando");
  51. ajax.open('get',url,true);
  52. ajax.onreadystatechange = function() {
  53.  
  54.         if (ajax==null){
  55.         alert ("Tu navegador web no soporta AJAX!");
  56.         return;
  57.         }
  58.  
  59.         if (ajax.readyState==1 || ajax.readyState==2 || ajax.readyState==3) {
  60.                                       cargar.innerHTML= "";
  61.                  }
  62.  
  63.                  else if (ajax.readyState==4){
  64.                                if(ajax.status==200){    
  65.  
  66.                 if (ajax.responseText.length == 0 || ajax.responseText == null || ajax.responseText == 'undefined') {
  67.                     cargar.innerHTML = 'No ha sido posible';
  68.                 } else {
  69.                     cargar.innerHTML = ajax.responseText;
  70.                 }
  71.                                }
  72.  
  73.             else if (ajax.status==404) {
  74.                 alert('La dirección no existe');
  75.             } else {
  76.                                         alert('Se ha producido un error');
  77.             }
  78.         }
  79. }
  80.    
  81.     ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');    
  82.     ajax.send(null);
  83.             return
  84. }
  85.  
  86.  
  87.  
  88.  
  89.  
  90. function MuestraDatos(val) {
  91. var url = "x.asp"
  92. var ajax=creaAjax();
  93. var ensistema = captura_objeto("dentro");
  94. ajax.open('POST',url,true);
  95. ajax.onreadystatechange = function() {
  96.  
  97.         if (ajax==null){
  98.         alert ("Tu navegador web no soporta AJAX!");
  99.         return;
  100.         }
  101.  
  102.         if (ajax.readyState==1 || ajax.readyState==2 || ajax.readyState==3) {
  103.                                       ensistema.innerHTML= "";
  104.                  }
  105.  
  106.                  else if (ajax.readyState==4){
  107.                                if(ajax.status==200){    
  108.  
  109.                 if (ajax.responseText.length == 0 || ajax.responseText == null || ajax.responseText == 'undefined') {
  110.                     ensistema.innerHTML = 'No ha sido posible';
  111.                 } else {
  112.                     ensistema.innerHTML = 'Bienvenido ' + ajax.responseText;
  113.                 }
  114.                                }
  115.  
  116.             else if (ajax.status==404) {
  117.                 alert('La dirección no existe');
  118.             } else {
  119.                                         alert('Se ha producido un error');
  120.             }
  121.         }
  122. }
  123.    
  124.     ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');    
  125.     ajax.send('nom='+val[0].value);
  126.             return
  127. }
  128. </script>
  129. </head>
  130. <body>
  131.  
  132. <form>
  133. <input type="button" value="Traer Formulario" onclick="TraeForm()" />
  134. </form>
  135.  
  136. <div id="cargando"></div>
  137. <div id="dentro"></div>
  138. </body>
  139. </html>
xx.html
Código HTML:
Ver original
  1. Nombre: <input type="text" id="nombre" name="nombre" value="" />
  2. <input type="button" value="Validar" onclick="MuestraDatos(this.form)" />
  3. </form>
x.asp
Código ASP:
Ver original
  1. <%@LANGUAGE="VBSCRIPT"%>
  2. <%
  3. nombre = Request.Form("nom")
  4.  
  5. ' tu conexión
  6.  
  7. SQL ="SELECT nombre FROM usuarios WHERE nombre = '"&nombre&"'"
  8. set rs = oConn.Execute(SQL)
  9.  
  10. if not rs.eof = True Then
  11. Response.Write rs.Fields("nombre")
  12. 'else
  13. 'Response.Write ""
  14. end if
  15. rs.Close
  16. Set rs = Nothing
  17. oConn.Close
  18. Set oConn = Nothing
  19. %>
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #8 (permalink)  
Antiguo 02/08/2010, 14:06
 
Fecha de Ingreso: julio-2007
Mensajes: 58
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: traer pagina con ajax

me presenta un error a la hora que se valida el nombre

me puedes dar una direccion para enviarte mi codigo que es el de la pagina (b) la cual estoy llamando.
  #9 (permalink)  
Antiguo 02/08/2010, 14:08
 
Fecha de Ingreso: julio-2007
Mensajes: 58
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: traer pagina con ajax

ahora te envio mi codigo que es la pagina (b) que es la que llamo desde la pagina (a)

*********
<FORM name="frmDatos" id="frmDatos" method="post">
<table border="0" width="100%">

<tr>
<th colspan="6" class="transparent titulomenu" scope=col>
<input name="txtTitulo" value="Grouping - Functionality" class="transparent" >
<input name="cmpId" type="hidden" >
</th>

</tr>
<tr><td><blockquote></blockquote></td></tr>
<tr><td><blockquote></blockquote></td></tr>

<tr>
<td valign="top">Grouping</td>
<td valign="top">

<select name="Grouping" id="Grouping" class="select0">

<%
DIM Rs

SQL = "SELECT ID, DESCRIPTION FROM GROUPING"
' set Rs = Con.execute(sql)
set Rs = connBD.Execute(SQL)

DO WHILE NOT Rs.EOF
if cdbl(Rs("id")) = cdbl(request("id")) then
%>
<option value="<%=Rs("ID")%>" selected><%=Rs("DESCRIPTION")%>

<%
else
%>
<option value="<%=Rs("id")%>"><%=Rs("DESCRIPTION")%>
<%
end if
Rs.Movenext
loop
set Rs=nothing

%>

</select>
</td>

<td valign="top">Functionality</td>
<td valign="top">Assigned Functionality</td>
</tr>
<tr>
<td></td>
<td></td>
<td valign="top">
<select name="Functionality" multiple="multiple" size="10" id="Functionality" class="select2">

<%
SQL = "SELECT ID, DESCRIPTION FROM FUNCTIONALITY WHERE DESCRIPTION <> 'TO FINISH'"

set Rs = connBD.Execute(SQL)


DO WHILE NOT Rs.EOF
%>
<option value="<%=Rs("Id")%>"><%=Rs("DESCRIPTION")%>
<%
Rs.Movenext
loop
set Rs=nothing
%>
</select>
</td>
<td valign="top">
<div class="list2">

*********
espero se entienda desde ya gracias
  #10 (permalink)  
Antiguo 02/08/2010, 14:14
 
Fecha de Ingreso: julio-2007
Mensajes: 58
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: traer pagina con ajax

me faltan mas codigos pero no puedo cargarlos al parecer la pagina no me los quiere aceptar.
  #11 (permalink)  
Antiguo 02/08/2010, 14:16
 
Fecha de Ingreso: julio-2007
Mensajes: 58
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: traer pagina con ajax

y este es el codigo de la lagina (a) en el cual te traigo a la pagina (b)

function abreVentana( Id ){
//sirve
if( '<%=varUsuario%>' != '' ) {


MostrarCapa();
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null) {
alert ("Your browser does not support AJAX!");
return;
}

var url="G_Group_Func.asp?id=" + Id;
xmlHttp.onreadystatechange=xTraepagina;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
} else {
location.href = "G_index.asp";
}

}

function xTraepagina() {
if (xmlHttp.readyState==4) {
// alert(xmlHttp.responseText);
document.getElementById("desplieguepagina").innerH TML=xmlHttp.responseText;
}
}
  #12 (permalink)  
Antiguo 02/08/2010, 14:17
 
Fecha de Ingreso: julio-2007
Mensajes: 58
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: traer pagina con ajax

y mediante este div me la muestra

<div id="desplieguepagina" style="WIDTH: 70.32%; HEIGHT: 300px"></div>
  #13 (permalink)  
Antiguo 02/08/2010, 15:57
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: traer pagina con ajax

Cita:
Iniciado por junnior Ver Mensaje
me presenta un error a la hora que se valida el nombre

me puedes dar una direccion para enviarte mi codigo que es el de la pagina (b) la cual estoy llamando.
Para que no te muestre ese error. Una tabla con el nombre usuario y un campo con el nombre nombre. Así de sencillo

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #14 (permalink)  
Antiguo 02/08/2010, 16:27
 
Fecha de Ingreso: julio-2007
Mensajes: 58
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: traer pagina con ajax

lo he cambiado, y me da aquel mensaje de error
  #15 (permalink)  
Antiguo 02/08/2010, 16:33
 
Fecha de Ingreso: julio-2007
Mensajes: 58
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: traer pagina con ajax

por casualidad has revisado mi codigo.......
  #16 (permalink)  
Antiguo 03/08/2010, 05:55
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: traer pagina con ajax

Hola

Cita:
Iniciado por junnior Ver Mensaje
lo he cambiado, y me da aquel mensaje de error
Acabo de probarlo y no da ningún error. Algo has de estar haciendo mal. ¿Qué error se levanta?

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #17 (permalink)  
Antiguo 04/08/2010, 08:02
 
Fecha de Ingreso: julio-2007
Mensajes: 58
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: traer pagina con ajax

tienes toda la razon , era yo el del problema ya me funciono, el script que me enviaste.....

voy aplicarlo en mi pagina.

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 19:07.