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

Usar formulario cargado en DIV con AJAX

Estas en el tema de Usar formulario cargado en DIV con AJAX en el foro de Frameworks JS en Foros del Web. Hola, tengo una mini aplicacion con ajax y ASP el cual carga el resultado de una consulta en un div, dentro del resultado van unos ...
  #1 (permalink)  
Antiguo 04/03/2009, 10:43
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 11 meses
Puntos: 16
Usar formulario cargado en DIV con AJAX

Hola, tengo una mini aplicacion con ajax y ASP el cual carga el resultado de una consulta en un div, dentro del resultado van unos campos de formulario, los cuales no me pasan el valor al formulario que abarca el DIV, seria algo asi:

<form>
campos
campos
<div id="resultado">
</div>
campos
botonsubmit
</form>

Dentro del div resultado se carga un valor que mando desde un archivo ASP, al enviar el formulario me manda los campos fuera del div solamente

Como pudiera mandar junto con los otros campos los valores de los campos dentro del DIV?

Ojala me haya explicado y me puedan orientar, realmente no se mucho de AJAX... ¿se nota?

Por si las dudas les paso los archivos que utilizo de AJAX:
Código javascript:
Ver original
  1. function GetXmlHttpObject(handler)
  2. {
  3.    var objXMLHttp=null
  4.    if (window.XMLHttpRequest)
  5.    {
  6.        objXMLHttp=new XMLHttpRequest()
  7.    }
  8.    else if (window.ActiveXObject)
  9.    {
  10.        objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
  11.    }
  12.    return objXMLHttp
  13. }
  14.  
  15. function stateChanged(proceso, caja)
  16. {
  17.    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
  18.    {
  19. //    document.getElementById(caja).innerHTML= xmlHttp.responseText;
  20.     document.getElementById(caja).innerHTML=proceso
  21.    }
  22.    else {
  23.      //alert(xmlHttp.status);
  24.    }
  25. }
  26.  
  27. // Will populate data based on input
  28. function htmlData(url, caja, qStr)
  29. {
  30.    if (url.length==0)
  31.    {
  32.        document.getElementById(caja).innerHTML="";
  33.        return;
  34.    }
  35.    xmlHttp=GetXmlHttpObject()
  36.    if (xmlHttp==null)
  37.    {
  38.        alert ("Su navegador no soporta este tipo de procedimiento, por favor actualice el mismo.");
  39.        return;
  40.    }
  41.    
  42.    url=url+"?"+qStr;
  43.    url=url+"&sid="+Math.random();
  44. //   xmlHttp.onreadystatechange=stateChanged;
  45.    xmlHttp.onreadystatechange=function() { stateChanged( xmlHttp.responseText, caja); }  
  46.    
  47.    xmlHttp.open("GET",url,true) ;
  48.    xmlHttp.send(null);
  49. }

Y lo llamo asi:
<input name="cantidad" id="cantidad" type="text" onkeyup="htmlData('cambia.asp', 'extras' , 'en=35&cant='+cantidad<%=rss("id")%>.value)" />
  #2 (permalink)  
Antiguo 04/03/2009, 14:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Usar formulario cargado en DIV con AJAX

Para que se envien esos datos tienen que estar dentro de un campo del formulario, no basta que esten en un div, tienen que estar o en un campo hidden, o en un textbox o algún otro control.

Saludos
  #3 (permalink)  
Antiguo 04/03/2009, 19:46
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 11 meses
Puntos: 16
Respuesta: Usar formulario cargado en DIV con AJAX

por eso aclare que son campos de formulario tambien, no estan en texto sino en campos de formulario tipo checkbox y selects
  #4 (permalink)  
Antiguo 04/03/2009, 20:04
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Usar formulario cargado en DIV con AJAX

Si te fijas, eres tú quien especificas cuáles campos se envían (a través del parámetro qStr de la función htmlData), si no lo especificas allí, no se enviarán.

¿O es que el resultado que obtienes contiene algunos campos que al enviar el formulario no se envían? ¿Es eso lo que quieres decir? Deberían funcionar sin problemas si tienen un name apropiado.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 04/03/2009, 21:05
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 11 meses
Puntos: 16
Respuesta: Usar formulario cargado en DIV con AJAX

pues si es eso y no se mandan :S
  #6 (permalink)  
Antiguo 04/03/2009, 21:34
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Usar formulario cargado en DIV con AJAX

Dinos cuál es el resultado, qué es lo que tienes dentro del div, ya que así a ciegas es difícil saber qué podría ser el problema.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 04/03/2009, 22:01
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 11 meses
Puntos: 16
Respuesta: Usar formulario cargado en DIV con AJAX

pues el resultado es que se mandan los campos fuera del DIV pero no los que estan dentro del mismo

seria algo asi:
<form>
campo
campo
<div>
campo
campo
</div>

campo
</form>

la parte en negritas es el div y la que no se manda
  #8 (permalink)  
Antiguo 04/03/2009, 22:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Usar formulario cargado en DIV con AJAX

Insisto con David adivinar el porque sin ver un caso practico es muy complicado. Por otro lado como dice David, si no envias tu el parámetro es difícil que PHP lo pueda rescatar.

Saludos
  #9 (permalink)  
Antiguo 06/03/2009, 22:12
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 11 meses
Puntos: 16
Respuesta: Usar formulario cargado en DIV con AJAX

Bueno, el resultado de la consulta AJAX es una serie de campos checkbox y selects, este es un ejemplo de resultados:

Código html:
Ver original
  1. <input name="extraso_11" value="1" id="extraso_1" type="checkbox">Doble queso - $5.00<br>
  2.            
  3.                 <input name="extraso_11" value="2" id="extraso_2" type="checkbox">Tocino - $5.00<br>
  4.            
  5.                 <input name="extraso_11" value="6" id="extraso_6" type="checkbox">Queso - $0.00<br>
  6.  
  7. <select name="extrass_11">
  8.         <option value="">Selecciona una opcion</option>
  9.                 <option value="3_11_10"> Coca-cola - $10.00</option>
  10.                 <option value="4_11_10"> Fanta - $10.00</option>
  11.                 <option value="24_11_15"> Sprite - $15.00</option>
  12.         </select>

Los checkbox los tengo nombrados iguales por que se pueden escoger varias opciones para un solo producto, la cosa es que el SELECT si me manda el valor, pero el checkbox lo recibo como undefined

El boton de envio lo tengo asi:
<input src="agregar.gif" onclick="htmlData('agrega.asp', 'carrito' , 'ac=1&amp;n=1&amp;id=1&amp;prod=11&amp;cant=1&amp; extraso_11='+extraso_11.value+'&amp;extrass_11='+e xtrass_11.value)" type="image">

y los campos los recibo con estos resultados usando ASP
ac:1
n:1
extraso_11:undefined
id:1
prod:11
cant:1
extrass_11:3_11_10
  #10 (permalink)  
Antiguo 07/03/2009, 08:26
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Usar formulario cargado en DIV con AJAX

Es que extraso_11 no puedes usarlo directamente por el name, ya que hay varios, si quieres usar por el name deberías especificar el índice, o sea, extraso_11[0], extraso_11[1], extraso_11[2]... y así sucesivamente.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #11 (permalink)  
Antiguo 07/03/2009, 09:25
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 11 meses
Puntos: 16
Respuesta: Usar formulario cargado en DIV con AJAX

lo que pasa es que la cantidad de esos campos es dinamica, habra productos que tengan 1 otrs 5 otros ninguno, habia visto que si se les pone el mismo nombre te manda el resultado separado por comas por eso lo puse asi...

entonces como deberia de quedar?
  #12 (permalink)  
Antiguo 07/03/2009, 09:30
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Usar formulario cargado en DIV con AJAX

Deberías hacer un bucle para recorrer todos los campos y añadirlos al resultado.
Código javascript:
Ver original
  1. for (i=0; elem = document.formulario.extraso_11[i]; i++) {
  2.     if (elem.checked) {
  3.         resultado += "&extraso_11[]=" + elem.value;
  4.     }
  5. }
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
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:34.