Foros del Web » Creando para Internet » HTML »

Envío de datos por formulario como nombre de pagina y nombre del link

Estas en el tema de Envío de datos por formulario como nombre de pagina y nombre del link en el foro de HTML en Foros del Web. Hola tengo una duda, no se si se podrá hacer, me ahorraría muuuuucho trabajo jeje, explico: tengo una pagina llamada "ejemplo.html" dentro de esa pagina ...
  #1 (permalink)  
Antiguo 17/01/2011, 10:51
 
Fecha de Ingreso: enero-2011
Mensajes: 46
Antigüedad: 13 años, 3 meses
Puntos: 0
Envío de datos por formulario como nombre de pagina y nombre del link

Hola tengo una duda, no se si se podrá hacer, me ahorraría muuuuucho trabajo jeje, explico:
tengo una pagina llamada "ejemplo.html" dentro de esa pagina un link llamado "link",otro llamado "link2", etc, al clickar se abre un formulario y sus datos se envían por "enviar.php", mi pregunta es...
es posible que en el mail con los datos del formulario, también me ponga el nombre de la página "ejemplo.html" y el nombre del "link" de forma automática y si pincho en "link2" me llegue en el mail "link2" y así sucesivamente, espero que se entienda la idea,
GRACIAS.
  #2 (permalink)  
Antiguo 17/01/2011, 15:28
Avatar de uikekarallo  
Fecha de Ingreso: diciembre-2009
Ubicación: Galicia
Mensajes: 338
Antigüedad: 14 años, 3 meses
Puntos: 16
Respuesta: Envío de datos por formulario como nombre de pagina y nombre del link

es más fácil si nos enseñas el código... porque no se entiende bien lo que pides. por eso creo que nadie te ha ayudado todavía.

si utilizas ejemplo.html, deberás recoger el nombre de la página mediante javascript.
si cambias la extensión a php, te será más fácil recogerlo.

Código PHP:
<?php
  $pagina 
$_SERVER['PHP_SELF'];
?>

<form method="post" enctype="multipart/form-data">
  <input type="hidden" name="nombre_pagina" value="<?php echo $pagina?>" />
</form>
de esta manera obtienes el nombre de la página desde la que se está enviando el formulario y lo envías al script php.

lo de los links no lo entiendo con claridad.

saludos.
  #3 (permalink)  
Antiguo 18/01/2011, 11:19
 
Fecha de Ingreso: enero-2011
Mensajes: 46
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Envío de datos por formulario como nombre de pagina y nombre del link

Gracias por contestar uikekarallo, tengo este formulario:
Código HTML:
Ver original
  1. <meta http-equiv="Content-Type"
  2. content="text/html; charset=ISO-8859-1">
  3. <title>Pide hora</title>
  4. <script type="text/javascript">
  5. function ccolor(col){
  6. opener.document.getElementById('a').style.backgroundColor=col;
  7. }
  8. </head>
  9. <form name="1FEBRERO" action="enviar.php" method="post">
  10. <div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40. <input onclick="ccolor('red');" value="Pide hora" type="submit"><input
  41. name="1_FEBRERO" type="HIDDEN"> <input name="9_00" type="HIDDEN">
  42. style="text-align: left; width: 250px; height: 250px; background-color: rgb(192, 192, 192);"
  43. border="4" cellpadding="4" cellspacing="4">
  44. <tr>
  45. <td style="vertical-align: top; text-align: left;"><b>Nombre y
  46. apellidos</b><br>
  47. <input id="nombre" name="nombre" size="33"> <br>
  48. <br>
  49. <b>Telefono</b><br>
  50. <input id="telefono" name="telefono" size="33"> <br>
  51. <br>
  52. <b>9:00</b><br>
  53. <br>
  54. </td>
  55. </tr>
  56. </div>
  57. </form>
  58. <br>
  59. <br>
  60. </body>
  61. </html>

que para acceder a él, es un link llamado "1" que está en la pagina "1:2.html", rellenas el formulario y le das a enviar, el archivo que se ocupa de esto es: "enviar.php" y aki tienes el codigo:
Código PHP:
Ver original
  1. <?php
  2. $nombre = $_POST['nombre'];  
  3. $telefono = $_POST['telefono'];
  4.  
  5. $header = 'From: ' . $nombre . " \r\n";
  6. $header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
  7. $header .= "Mime-Version: 1.0 \r\n";
  8. $header .= "Content-Type: text/plain";
  9.  
  10. $mensaje .= "Teléfono: " . $telefono . " \r\n";
  11. $mensaje .= "Cita 1/2/2011 - 10:30H  " . $nombre . " \r\n";  
  12. $mensaje .= "Cita pedida el " . date('d/m/Y', time());
  13.  
  14. $para = "[email protected]";
  15. $asunto = 'Cita previa';
  16.  
  17.  
  18. mail($para, $asunto, utf8_decode($mensaje), $header);
  19.  
  20.  
  21. ?>
  22. </h2>
  23. <h2 align="center">Gracias!</h2>
  24.  
  25. <p align="center">Tu cita ha sido registrada correctamente.</p>
  26. <form id="form1" name="form1" method="post" action="">
  27.   <label>
  28.     <div align="center">
  29.       <input type="button" name="Cerrar" id="Cerrar" value="Cerrar" onclick="window.close();"/>
  30.     </div>
  31.   </label>
  32. </form>
  33. <p align="center"> </p>
  34. <p><span style="color:red;font-size:150%;font-weight:bold;"><?php print $email; ?></span></p>
  35. <noscript>
  36. </noscript>
la idea es que a parte de la información que ya recojo del formulario, tambien me llegara en el mail "1" y "1:2.html", lo explico mas o menos, no se si se entiende,

muchas gracias...
  #4 (permalink)  
Antiguo 18/01/2011, 15:06
Avatar de uikekarallo  
Fecha de Ingreso: diciembre-2009
Ubicación: Galicia
Mensajes: 338
Antigüedad: 14 años, 3 meses
Puntos: 16
Respuesta: Envío de datos por formulario como nombre de pagina y nombre del link

entiendo. como te he dicho, sería más cómodo que utilizases php en lugar de html tanto para la página actual como para el link del que proviene.

si tiene que ser en html por fuerza, utilizaremos javascript, siendo un poco más complejo:

Código HTML:
<!-- recogemos la ruta de la primera página con javascript y se lo añadimos al ancla para enviarla a la página del formulario -->

<script type="text/javascript">
window.onload = function()
{
	var pag = location.pathname.slice(1);

	var menu1= document.getElementById('menu1').href +'?pag='+ pag;
	document.getElementById('menu1').href = menu1;

	// para más enlaces, repetimos las 2 últimas líneas cambiando menu1 por menu2, etc.
}
</script>

<!-- este es el link que va al formulario. le damos un id único a cada enlace que vaya al formulario  -->

<a id="menu1" href="1-2.html">ir al formulario</a> 
ya tenemos la primera página, la que enlaza al formulario. ahora toca recogerla en la página del formulario:

Código HTML:
<script type="text/javascript">
window.onload = function()
{
	// este código lo extraje de algún sitio, pero no recuerdo de donde... sirve para recoger una o más variables

	var uri = location.href;
	uri = uri.replace(/.*\?(.*?)/,"$1");
	variables = uri.split ("&");

	for( i=0 ; i<variables.length ; i++ )
	{
		sep = variables[i].split("=");
		eval ('var '+sep[0]+'="'+sep[1]+'"');
	}

	// recogemos el nombre de la página actual (la segunda) y ya tenemos el nombre de las 2 páginas

	var pag = pag;
	var pag2 = location.pathname.slice(1);

	// toca añadir los valores de estos variables a unos inputs hidden del formulario

	document.getElementById('pagina1').value = pag;
	document.getElementById('pagina2').value = pag2;
}
</script>

<!-- y el formulario también tiene que tener sus ids únicas -->

<form ...>
  <input id="pagina1" name="pagina1" type="hidden" value="" />
  <input id="pagina2" name="pagina2" type="hidden" value="" />
</form> 
y después de todo esto, sólo tienes que recoger los valores en el php

Código PHP:
  $pag1 $_POST['pagina1'];
  
$pag2 $_POST['pagina2']; 
y si no me he liado, creo que está todo correcto. repito que con php sería mucho más sencillo, pero bueno, ahora ya está hecho con javascript.

un saludo.
  #5 (permalink)  
Antiguo 19/01/2011, 11:17
 
Fecha de Ingreso: enero-2011
Mensajes: 46
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Envío de datos por formulario como nombre de pagina y nombre del link

gracias por la respuesta, pero tengo una duda, si la pagina se llama 1:2.html y el link tiene id="a", el nombre del formulario es form.html, no se bien como configurar estas lineas, donde está 'menu1' por ejemplo que tendría que poner?,
en var pag = pag; quedaria asi o pondría el nombre de la página?
muchas gracias,
con este cogido recogería de forma automática el nombre de la página en que me encuentro y el id o nombre del link que clicke para que me saliera el formulario??
gracias otra vez por la explicación y el codigo.
  #6 (permalink)  
Antiguo 19/01/2011, 11:36
Avatar de uikekarallo  
Fecha de Ingreso: diciembre-2009
Ubicación: Galicia
Mensajes: 338
Antigüedad: 14 años, 3 meses
Puntos: 16
Respuesta: Envío de datos por formulario como nombre de pagina y nombre del link

es sencillo. veamos. la página que contiene el link al formulario se llama 1:2.html. hasta ahí todo bien.

si el link de esa página (que dirige a la página del formulario) tiene id="a", en el código que te he dado, en el javascript de la primera página, tendrás que cambiar donde ponga getElementById('menu1') por getElementById('a').

así lo que haces es que el link te quede de la siguiente manera: <a id="a" href="form.html?pag=1:2.html">ir al formulario</a>. y así es como enviamos el nombre de la primera página a la segunda.

si tienes alguna duda, pregunta :)

un saludo.
  #7 (permalink)  
Antiguo 19/01/2011, 11:40
 
Fecha de Ingreso: enero-2011
Mensajes: 46
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Envío de datos por formulario como nombre de pagina y nombre del link

Gracias uikekarallo por responder tan rapido voy a ponerme al lio jejejej ;)
  #8 (permalink)  
Antiguo 19/01/2011, 11:44
 
Fecha de Ingreso: enero-2011
Mensajes: 46
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Envío de datos por formulario como nombre de pagina y nombre del link

Código HTML:
Ver original
  1. var menu1= document.getElementById('menu1').href +'?pag='+ pag;
  2.     document.getElementById('menu1').href = [COLOR="Black"][U]menu1[/U][/COLOR];

entonces aki que tendria que poner ¿form.html?
  #9 (permalink)  
Antiguo 19/01/2011, 11:45
 
Fecha de Ingreso: enero-2011
Mensajes: 46
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Envío de datos por formulario como nombre de pagina y nombre del link

var menu1= document.getElementById('menu1').href +'?pag='+ pag;
document.getElementById('menu1').href = menu1;

donde pone menu1 en negrita que en el post anterior no ha salido
  #10 (permalink)  
Antiguo 19/01/2011, 11:55
Avatar de uikekarallo  
Fecha de Ingreso: diciembre-2009
Ubicación: Galicia
Mensajes: 338
Antigüedad: 14 años, 3 meses
Puntos: 16
Respuesta: Envío de datos por formulario como nombre de pagina y nombre del link

no, en absoluto!

eso es el nombre de una variable en javascript, nada tiene que ver con el html ni con enlaces. eso es simplemente una palabra donde se almacenan datos o información.

si el enlace que va a la página del formulario tiene id="a", tendrías que cambiar el código javascript de la siguiente manera:

Código HTML:
var menu1= document.getElementById('a').href +'?pag='+ pag;
document.getElementById('a').href = menu1;
si te fijas, en getElementById('a'), le estamos poniendo el id del enlace. de esta manera, si el id de tu enlace fuera "azucar", tendrías que poner getElementByid('azucar') para referirte a el. es más sencillo de lo que parece.

vete probando y me cuentas como va.

un saludo.
  #11 (permalink)  
Antiguo 19/01/2011, 12:01
 
Fecha de Ingreso: enero-2011
Mensajes: 46
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Envío de datos por formulario como nombre de pagina y nombre del link

Te explico la pagina para que lo entiendas bien y yo también jeje, es un calendario, cada celda tiene un link, la primera celda es "9:00H" con id=a, la segunda es "10:00H" con id=b, etc...,el nombre de la pagina es 1:2.html por que es el dia 1 de febrero (1/2), antes de esto hay una pagina llamada febrero.html con todos los dias del mes, si pinchas en el dia 1 se abre 1:2.html, que hay una tabla con las horas como te comento antes, 9:00H, 10:00H, etc, si clickeas en las 9:00H, se abre el formulario, rellenas nombre y telefono, le das a enviar, te llegan los datos por mail y esa celda que era verde se pone en rojo como que esta ocupada la hora.
Gracias
  #12 (permalink)  
Antiguo 19/01/2011, 12:48
 
Fecha de Ingreso: enero-2011
Mensajes: 46
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Envío de datos por formulario como nombre de pagina y nombre del link

ok, entoces en este código:
Código HTML:
Ver original
  1. <script type="text/javascript">
  2. window.onload = function()
  3. {
  4.     // este código lo extraje de algún sitio, pero no recuerdo de donde... sirve para recoger una o más variables
  5.  
  6.     var uri = location.href;
  7.     uri = uri.replace(/.*\?(.*?)/,"$1");
  8.     variables = uri.split ("&");
  9.  
  10.     for( i=0 ; i<variables.length ; i++ )
  11.     {
  12.         sep = variables[i].split("=");
  13.         eval ('var '+sep[0]+'="'+sep[1]+'"');
  14.     }
  15.  
  16.     // recogemos el nombre de la p&#225;gina actual (la segunda) y ya tenemos el nombre de las 2 p&#225;ginas
  17.  
  18.     var pag = pag;
  19.     var pag2 = location.pathname.slice(1);
  20.  
  21.     // toca a&#241;adir los valores de estos variables a unos inputs hidden del formulario
  22.  
  23.     document.getElementById('pagina1').value = pag;
  24.     document.getElementById('pagina2').value = pag2;
  25. }

desde:
Código HTML:
Ver original
  1. // recogemos el nombre de la página actual (la segunda) y ya tenemos el nombre de las 2 páginas
  2.  
  3.     var pag = pag;
  4.     var pag2 = location.pathname.slice(1);
  5.  
  6.     // toca añadir los valores de estos variables a unos inputs hidden del formulario
  7.  
  8.     document.getElementById('pagina1').value = pag;
  9.     document.getElementById('pagina2').value = pag2;
  10. }

pagina1 y pagina2 que valores llevarían? la id o el nombre de la página?
igual que en este codigo
Código HTML:
Ver original
  1. <form ...>
  2.   <input id="pagina1" name="pagina1" type="hidden" value="" />
  3.   <input id="pagina2" name="pagina2" type="hidden" value="" />
  4. </form>
que valores irian?
gracias por responderme, soy un novato pesado jejje...
  #13 (permalink)  
Antiguo 19/01/2011, 12:59
Avatar de uikekarallo  
Fecha de Ingreso: diciembre-2009
Ubicación: Galicia
Mensajes: 338
Antigüedad: 14 años, 3 meses
Puntos: 16
Respuesta: Envío de datos por formulario como nombre de pagina y nombre del link

vaya, eso cambia un poco las cosas. y cuando la hora es ocupada y se marca en rojo, qué sucede con ese link? se borra todo el ancla (<a></a>), se cambia el href a #... ¿?

sigo diciendo que esto era más fácil en php! :)

un saludo.
  #14 (permalink)  
Antiguo 19/01/2011, 13:13
Avatar de uikekarallo  
Fecha de Ingreso: diciembre-2009
Ubicación: Galicia
Mensajes: 338
Antigüedad: 14 años, 3 meses
Puntos: 16
Respuesta: Envío de datos por formulario como nombre de pagina y nombre del link

en los inputs del formulario, lo importante es que las id sean "pagina1" y "pagina2", según establecimos en el código javascript. el name es lo que recibe el php, eso puedes modificarlo.

ahora toca hacer que cada href del calendario tenga su ?pag=1:2.html.

podríamos modificar el primer código, el cual quedaría de la siguiente manera:

Código HTML:
<script type="text/javascript">
window.onload = function()
{
	var pag = location.pathname.slice(1);

	var numero_ids = document.getElementsByTagName('a').length;
	for( i=1 ; i<=numero_ids ; i++ )
	{
		document.getElementById('hora'+ i).href = document.getElementById('hora'+ i).href +'?pag='+ pag;
	}
}
</script> 
así lo que hacemos es que mire cuantos enlaces hay numerados y, a todos ellos, mientras no se interrumpa la numeración, les aplique el ?pag=. te preguntaba antes lo de qué ocurre cuando la hora se marca en rojo porque si borramos el ancla, este sistema ya no funcionaría. en cambio, si cambiamos el href a # ya no habría problemas.

y los enlaces tendrían que modificarse un poco, pasando a ser así:

Código HTML:
<a id="hora1" href="form.html">10</a>
<a id="hora2" href="form.html">11</a>
<a id="hora3" href="form.html">12</a>
<a id="hora4" href="form.html">13</a>
<a id="hora5" href="form.html">14</a>
<a id="hora6" href="#">15</a> <!-- esto sería una hora ocupada --> 
como ves, mientras haya un id="hora(numero)" y sea progresivo (1,2,3,4..) funcionará correctamente. si un id falla (1,2,4,5) el código funcionará hasta la interrupción. no sé si me explico bien... a ver si te sirve.

un saludo.
  #15 (permalink)  
Antiguo 19/01/2011, 15:49
 
Fecha de Ingreso: enero-2011
Mensajes: 46
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Envío de datos por formulario como nombre de pagina y nombre del link

Perfecto, muchisimas gracias, si tuviera cualquier duda te comento.
GRAZAS!!!
  #16 (permalink)  
Antiguo 19/01/2011, 15:59
 
Fecha de Ingreso: enero-2011
Mensajes: 46
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Envío de datos por formulario como nombre de pagina y nombre del link

Esto quiere decir que tengo que cambiar los Id a,b,c,d por números?
  #17 (permalink)  
Antiguo 19/01/2011, 17:14
Avatar de uikekarallo  
Fecha de Ingreso: diciembre-2009
Ubicación: Galicia
Mensajes: 338
Antigüedad: 14 años, 3 meses
Puntos: 16
Respuesta: Envío de datos por formulario como nombre de pagina y nombre del link

tal y como te he puesto el código en javascript, tendrías que cambiar id="a" , id="b" , id="c" etc por:

Código HTML:
<a id="hora1"></a>
<a id="hora2"></a>
<a id="hora3"></a> 
a ver si te sale. lo que sea me dices.

saludos.
  #18 (permalink)  
Antiguo 19/01/2011, 17:27
 
Fecha de Ingreso: enero-2011
Mensajes: 46
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Envío de datos por formulario como nombre de pagina y nombre del link

ojala pudiera hacerlo en php pero estoy a cero de php :), aunque tendré que clavar codos y ponerme al lio jeje
  #19 (permalink)  
Antiguo 19/01/2011, 19:00
Avatar de uikekarallo  
Fecha de Ingreso: diciembre-2009
Ubicación: Galicia
Mensajes: 338
Antigüedad: 14 años, 3 meses
Puntos: 16
Respuesta: Envío de datos por formulario como nombre de pagina y nombre del link

veamos si poco a poco lo logramos. en php hacer eso es mucho más sencillo y el único requisito para poder utilizarlo sería cambiar la extensión de los archivos .html a .php. si eso en otro momento te digo como funcionaría.

para lo que sea, aquí estamos.

un saludo.
  #20 (permalink)  
Antiguo 20/01/2011, 16:10
 
Fecha de Ingreso: enero-2011
Mensajes: 46
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Envío de datos por formulario como nombre de pagina y nombre del link

va todo ok pero en el mail me llega "Dia PRUE" he estado mirando el código y no encuentro el fallo, debe estar en 'dia_mes' o en algun id supongo
  #21 (permalink)  
Antiguo 20/01/2011, 16:15
 
Fecha de Ingreso: enero-2011
Mensajes: 46
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Envío de datos por formulario como nombre de pagina y nombre del link

ok ya lo tengo solucionado, era un valor que se me había pasado :)
  #22 (permalink)  
Antiguo 21/01/2011, 13:03
Avatar de uikekarallo  
Fecha de Ingreso: diciembre-2009
Ubicación: Galicia
Mensajes: 338
Antigüedad: 14 años, 3 meses
Puntos: 16
Respuesta: Envío de datos por formulario como nombre de pagina y nombre del link

lo bueno es que te llegaba algo, eso quería decir que en el fondo estaba funcionando correctamente, aunque no fuese lo esperado.

cualquier duda, por aquí andamos.

un saludo.

Etiquetas: link, nombre, formulario
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 11:40.