Foros del Web » Programando para Internet » ASP Clásico »

Recoger datos de un formulario (utilizar un asp comun para todos)

Estas en el tema de Recoger datos de un formulario (utilizar un asp comun para todos) en el foro de ASP Clásico en Foros del Web. En principio hay páginas que te dan servicio gratuito para esto, suele ser un cgi que recoge todos los datos de tu formulario sea coo ...
  #1 (permalink)  
Antiguo 24/08/2004, 03:54
 
Fecha de Ingreso: febrero-2002
Ubicación: Navarra
Mensajes: 701
Antigüedad: 22 años, 9 meses
Puntos: 2
Pregunta Recoger datos de un formulario (utilizar un asp comun para todos)

En principio hay páginas que te dan servicio gratuito para esto, suele ser un cgi que recoge todos los datos de tu formulario sea coo sea este y te los manda a tu correo, ahora bien, hay alguna forma de hacer esto en asp?, o sea yo creo un formulario cualquiera con los campos que necesite, seran diferentes en cada formulario con nombre diferentes los campos y necesitaria hacer una página que me recoja esos datos independientemente de como se llamen los campo y el tipo de campo que sea, es posible esto?

Un saludo
__________________
asp, php, .net, adaptandose a las necesidades
  #2 (permalink)  
Antiguo 24/08/2004, 04:51
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 22 años
Puntos: 4
Podrías hacerlo recogiendo con un bucle cada campo. Más o menos así:

Código:
For each campo in Request.Form 
   Response.Write("Campo " & campo & ": " & Request.Form(campo))
Next
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!

Última edición por Bravenap; 24/08/2004 a las 04:53
  #3 (permalink)  
Antiguo 24/08/2004, 07:05
 
Fecha de Ingreso: julio-2004
Ubicación: Capital Federal, Argentina
Mensajes: 283
Antigüedad: 20 años, 4 meses
Puntos: 1
tambien es posible hacerlo con javascript

aca te paso un ejemplo de validacion de campos obligatorios en JavaScript
no es lo que vos necesitas, pero es para que veas como es posible recorrer todos los campos de un formulario

function RealizarValidacion()
{
var a;
var inputs;

inputs = document.forms[0].elements;

for(a=0;a<inputs.length;a++)
{
if (((inputs[a].value == '') || (inputs[a].value == 0)) && (inputs[a].name.substring(0,1) == 'O'))
{
alert ('El campo ' + inputs[a].id + ' es obligatorio');
return false;
}
}

return true;
}
  #4 (permalink)  
Antiguo 24/08/2004, 10:10
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 8 meses
Puntos: 535
Cita:
tambien es posible hacerlo con javascript
Pero estamos en el foro ASP
__________________
...___...
  #5 (permalink)  
Antiguo 24/08/2004, 10:26
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 22 años
Puntos: 4
Exacto dazuaga, muy avispado

Si haven pretende finalmente enviar esos datos por correo, no le servirá de nada JavaScript, aunque se agradece la colaboración. Viva el mestizaje .

Ya que estamos, me surge una duda. Con el código que he puesto antes se pueden recoger los valores de todo el formulario, pero imaginemos que queremos introducir esos valores en unas variables. Como el formulario puede cambiar el número de campos, no podemos definir previamente esas variables.

Un ejemplito. Tenemos un formulario en el que se introducen tres campos: "Nombre", "Apellidos" y "Correo electrónico". ¿Cómo podríamos crear en tiempo de ejecución tres variables que se llamen de esa manera y que recojan los valores introducidos?
No sé si se puede hacer algo así:
Código:
For each campo in Request.Form 
   Request.Form(campo).Name = Request.Form(campo).Value
Next
Hace tiempo hice una aplicación que recogía veintimuchos campos de varios tipos por cada horizonte de suelo, y un suelo puede tener desde 1 hasta n horizontes. Imaginad la que lie .

Bueno, no me enrollo, que al fin y al cabo el tema era de haven.

Un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #6 (permalink)  
Antiguo 24/08/2004, 10:54
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 8 meses
Puntos: 535
mmm... interesante, Bravenap.

Se me ocurre esto, pero no estoy seguro que sea correcto.. no lo probé:

Código:
For each campo in Request.Form 
   Eval("Request.Form(" & campo & ").Name") = Request.Form(campo).Value
Next
Pero... si lo anterior funcionase... ¿cómo hacés referencia a una variable en particular si hasta los nombres son variables?. O sea, por ejemplo, ¿cómo harías un response.write(nombre_variable) si no sabés como se llamará la variable?

¿me estoy liando?
__________________
...___...

Última edición por AlZuwaga; 24/08/2004 a las 10:55
  #7 (permalink)  
Antiguo 30/08/2004, 04:22
 
Fecha de Ingreso: febrero-2002
Ubicación: Navarra
Mensajes: 701
Antigüedad: 22 años, 9 meses
Puntos: 2
Hola, e estado investigando un poco el tema, y en asp no e conseguido que me funcione pero en php encontré una funcion que funciona perfectamente, la página donde está la esplicación es esta:

http://www.desarrolloweb.com/articulos/1326.php

y el código que recoje los datos del formulario con sus respectivos nombres de campo es esta:

Código PHP:
<?php
foreach($_POST as $nombre_campo => $valor){ 
   
$asignacion "\$" $nombre_campo "='" $valor "';"
   eval(
$asignacion);
   echo 
$asignacion.'<br>';
   


?>
Lo e estado probando y funciona muy bien, aunque con mis conocimiento casi nulos de php no e podido hacer más, ahora lo bueno seria que aprovechando esta función, que los enviaria por mail a la direccion establecida o bien hacer esto mismo pero con asp.

Espero que les sirva.

Un saludo
__________________
asp, php, .net, adaptandose a las necesidades

Última edición por haven; 30/08/2004 a las 04:30
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 00:21.