• Viernes 19 de Abril de 2024, 16:41

Autor Tema:  html con ajax  (Leído 1981 veces)

hpina

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
html con ajax
« en: Jueves 20 de Noviembre de 2008, 15:20 »
0
Muy buenas amigos de solo código;
Tengo un formulario html y uno de los controles es un boton "button", cuando presiono este botón, va a un código AJAX y me genera tantos renglones o lineas para introducir datos como cantidad haya metido el usuario. Mi problema es el siguiente: cuando le doy "SUBMIT" al formulario y voy al control para recibir los datos metidos por el usuario, los datos de los controles generados através del código AJAX se pierden ¿por qué?
De antemano gracias por el apoyo recibido.

shadow_rev

  • Miembro MUY activo
  • ***
  • Mensajes: 397
  • Nacionalidad: co
  • Un SPARTAN no muere en combate
    • Ver Perfil
    • http://shadowrev.blogspot.com
Re: html con ajax
« Respuesta #1 en: Jueves 20 de Noviembre de 2008, 23:01 »
0
Puede ser que el código que generes usando AJAX esté metido dentro de etiquetas FORM, y por eso no te cogen los campos.

Podrías poner el fragmento de código para ver que ocurre ??
Volará quien le ponga alas a sus sueños (Candidate for goddess)
Si el mal existe en este mundo, reside en el corazón de la humanidad (Edward D. Morrison - Tales of Phantasia)
Lo único que puedes cambiar del pasado, es lo que sientes por él en el presente (Lockon Stratos - Mobile Suit Gundam 00)
Ingeniero de Sistemas

hpina

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: html con ajax
« Respuesta #2 en: Viernes 21 de Noviembre de 2008, 15:28 »
0
Gracias por la contestación; trataré de explicarme mejor.
Dentro del archivo HTML está un FORM que contiene un BUTTON, al presionarlo se ejecuta una función que se llama "CREAR MIEMBROS(Cantidad) que no está dentro del HTML"; el código AJAX donde está la función es el siguiente :
var xmlHttp



function CrearMiembros(Numero)

{        xmlHttp = GetXmlHttpObject();



         if (xmlHttp == null)

         {   alert ("Your browser does not support AJAX!");

             return;

         }

      

         var Url = "/Vistas/visMiembros.php?Cantidad=" + Numero + "&Id=" + Math.random();

      

       xmlHttp.onreadystatechange = stateChanged;

       xmlHttp.open("POST", Url, true);

       xmlHttp.send(null);

}



function stateChanged()

{        if (xmlHttp.readyState == 4)

         {   document.getElementById("Miembros").innerHTML = xmlHttp.responseText;}

}



function GetXmlHttpObject()

{        var xmlHttp = null;



       try

       {  // Firefox, Opera 8.0+, Safari

          xmlHttp = new XMLHttpRequest();

       }

       catch (e)

       {  // Internet Explorer

          try

           {xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");}

          catch (e)

           {xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");}

       }

      

         return xmlHttp;

}

EL archivo Miembros.php que está en el url es:

<?php

     session_start();

   

    $_SESSION['CantidadMiembros'] = $_REQUEST['Cantidad'];

   

    for ($i = 0; $i < $_SESSION['CantidadMiembros']; $i++)

    {    echo "<table>" .

               "<tr>" .

                 "<td align = 'center' " .

                    "class = 'nombreCampo' " .

                    "width = '155'>" .

                   "<input type      = 'text' " .

                        "name      = 'numCedula$i' " .

                        "size      = '18' " .

                        "maxlength = '8' " .

                        "value     = '$Cedula'/>" .

                 "</td>" .

                 

                 "<td align = 'center' " .

                    "class = 'nombreCampo' " .

                    "width = '379'>" .

                   "<input type      = 'text'" .

                        "name      = 'txtNombresApellidos$i' " .

                        "size      = '46' " .

                        "maxlength = '30' " .

                        "value     = '$Nombre'/>" .

                 "</td>" .

                 

                 "<td align = 'center' " .

                    "class = 'nombreCampo' " .

                    "width = '450'>" .

                   "<input type      = 'text' " .

                        "name      = 'txtCargo$i' " .

                        "size      = '55' " .

                        "maxlength = '50' " .

                        "value     = '$Cargo'/>" .

                 "</td>" .

               "</tr>" .

            "</table>";

    }

?>


Todo lo hace bien, pero cuando doy SUBMIT al formulario ni los controles generados por AJAX ni los datos contenidos en ellos existen. El DIV donde se deben colocar los renglones generados por el código AJAX está inmediatamente despues de cerrar el FORM. De nuevo gracias por cualquier apoyo al respecto.

shadow_rev

  • Miembro MUY activo
  • ***
  • Mensajes: 397
  • Nacionalidad: co
  • Un SPARTAN no muere en combate
    • Ver Perfil
    • http://shadowrev.blogspot.com
Re: html con ajax
« Respuesta #3 en: Viernes 21 de Noviembre de 2008, 19:16 »
0
Cita de: "hpina"
El DIV donde se deben colocar los renglones generados por el código AJAX está inmediatamente despues de cerrar el FORM. De nuevo gracias por cualquier apoyo al respecto.
Ahí está el problema. Pon el div dentro de la etiqueta form; de esa forma le agregas los campos y así te capturará la información que introduzcas.

Y para la próxima, pon el código entre el bloque [CODE] (es el botoncito que dice "Code", encima de donde escribes el post), así es más fácil leerlo.

:suerte:
Volará quien le ponga alas a sus sueños (Candidate for goddess)
Si el mal existe en este mundo, reside en el corazón de la humanidad (Edward D. Morrison - Tales of Phantasia)
Lo único que puedes cambiar del pasado, es lo que sientes por él en el presente (Lockon Stratos - Mobile Suit Gundam 00)
Ingeniero de Sistemas

hpina

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: html con ajax
« Respuesta #4 en: Viernes 21 de Noviembre de 2008, 22:27 »
0
Hola amigo, Funcionó!!! si me captura los datos y no se pierden  ¡muchas gracias!
p.d. tomaré en cuenta tu observacion para una proxima oportunidad
hasta pronto !!!