2012-01-10 21 views
8

Decir que tengo un formulario HTML como este para recoger un correo electrónico de un visitante del sitio Web:valor Obtención de entrada de texto HTML

<form name="input" action="handle_email.php" method="post"> 
Email: <input type="text" name="email" /> 
<input type="submit" value="Newsletter" /> 
</form> 

Ahora, cuando se pulsa el botón de enviar puedo obtener el valor del campo de correo electrónico en handle_email.php usando $ _POST ["email"]. Pero digamos que me gustaría usar el valor de la entrada de texto del correo electrónico en otro lugar. ¿Es posible obtener el valor del correo electrónico "fuera" del procesamiento del formulario?

ACTUALIZACIÓN: Gracias a todos por sus respuestas rápidas. Lo que trato de hacer es obtener el buzón de correo electrónico para hacer doble tarea. Por ejemplo, he cambiado el nombre del botón de enviar a "Newsletter" en el código anterior. Cuando se presiona ese botón, el script handle_email.php simplemente registrará al usuario para un boletín informativo. Sin embargo, también tengo un enlace "Registrarse" en la misma página que redirige al visitante a un formulario de registro donde puede ingresar mucha otra información si lo desea. Ahora, si el usuario ingresó datos en el cuadro de texto del correo electrónico, me gustaría enviarlos a la página de registro para que el campo se pueda rellenar previamente. Por ejemplo:

<a href="http://mywebsite.com/register?user_email="[how can I put the email here?]"/>Register</a> 

Mis disculpas por no ser lo suficientemente claro en mi post original.

+0

¿Dónde más se puede pedir a utilizar el valor del campo de correo electrónico? Si está en la misma página, entonces JavaScript (o jQuery) lo haría. – j08691

+0

He actualizado mi pregunta con más información. – Kevin

+0

Use las sesiones, tal como lo he indicado en mi publicación. ¡Las sesiones son tu única ESPERANZA! –

Respuesta

9

Ver mi jsFiddle aquí: http://jsfiddle.net/fuDBL/

Cada vez que se cambia el campo de correo electrónico, el enlace se actualiza automáticamente. Esto requiere una pequeña cantidad de jQuery. Así que ahora su formulario funcionará según sea necesario, pero su enlace se actualizará dinámicamente para que cuando alguien haga clic en él, contenga lo que ingresó en el campo de correo electrónico. Debe validar la entrada en la página de recepción.

$('input[name="email"]').change(function(){ 
    $('#regLink').attr('href')+$('input[name="email"]').val(); 
}); 
+0

Gracias, pude hacerlo funcionar basado en este código. – Kevin

18

Si desea utilizar el valor de la entrada de correo electrónico en otro lugar en la misma página, por ejemplo, para hacer algún tipo de validación, puede usar JavaScript. En primer lugar me gustaría asignar un atributo "id" a su cuadro de texto del correo electrónico:

<input type="text" name="email" id="email"/> 

y luego me gustaría recuperar el valor con JavaScript:

var email = document.getElementById('email').value; 

A partir de ahí, se puede realizar un procesamiento adicional en el valor de 'correo electrónico'.

1

Depende de dónde desee utilizar el correo electrónico. Si está en el lado del cliente, sin enviarlo a un script PHP, JQuery (o javascript) puede hacer el truco.

He creado un violín para explicar la misma -

Tiene una alerta que desaparece al carga y al hacer clic en el cuadro de texto en sí.

1

Sí, puede utilizar jQuery para hacer de este hecho, la idea es

Utilice un valor oculto en su forma, y ​​copiar el valor del cuadro de texto externo a este valor oculto justo antes de enviar el formulario.

<form name="input" action="handle_email.php" method="post"> 
    <input type="hidden" name="email" id="email" /> 
    <input type="submit" value="Submit" /> 
</form> 

<script> 
    $("form").submit(function() { 
    var emailFromOtherTextBox = $("#email_textbox").val(); 
    $("#email").val(emailFromOtherTextBox); 
    return true; 
    }); 
</script> 

también ver http://api.jquery.com/submit/

0

sólo tiene que utilizar fácil javascript:

<form name="input" action="handle_email.php" method="post"> 
 
    Email: <input type="text" name="email" /> 
 
    <input type="submit" value="Newsletter" /> 
 
</form> 
 

 
<a href="javascript:var the_mail = document.getElementByName('email').value; window.location = 'http://mywebsite.com/register?user_email=' + the_email;">Register</a>

también se puede cambiar el tipo de entrada de correo electrónico como:

Cuestiones relacionadas