2012-01-10 17 views
8

Dire che ho un modulo HTML come questo per raccogliere un'email da un visitatore del sito:Ottenere valore dell'ingresso testo HTML

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

Ora, quando viene premuto il pulsante di invio posso ottenere il valore del campo e-mail a handle_email.php utilizzando $ _POST ["email"]. Ma dire che mi piacerebbe usare il valore del testo di input e-mail altrove. È possibile ottenere il valore dell'email "al di fuori" dell'elaborazione del modulo?

AGGIORNAMENTO: Grazie a tutti per le loro risposte rapide. Quello che sto cercando di fare è ottenere la casella di posta elettronica per fare il doppio dovere. Ad esempio, ho rinominato il pulsante di invio su "Newsletter" nel codice precedente. Quando viene premuto quel pulsante lo script handle_email.php si limita a registrare l'utente per una newsletter. Tuttavia, ho anche un link "Registrati" sulla stessa pagina che reindirizza il visitatore a un modulo di registrazione in cui possono inserire molte altre informazioni, se lo desiderano. Ora, se l'utente ha inserito i dati nella casella di testo dell'email, desidero inviarlo alla pagina di registrazione in modo che il campo possa essere pre-compilato. Ad esempio:

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

Le mie scuse per non essere abbastanza chiare nel mio post originale.

+0

Dove altro vuoi utilizzare il valore del campo email? Se è nella stessa pagina, farebbe JavaScript (o jQuery). – j08691

+0

Ho aggiornato la mia domanda con ulteriori informazioni. – Kevin

+0

Utilizzare le sessioni, come ho indicato sul mio post. Le sessioni sono la tua unica SPERANZA !!! –

risposta

9

Vedi il mio jsFiddle qui: http://jsfiddle.net/fuDBL/

Ogni volta che si modifica il campo e-mail, il collegamento viene aggiornato automaticamente. Ciò richiede una piccola quantità di jQuery. Così ora il tuo modulo funzionerà come necessario, ma il tuo link verrà aggiornato dinamicamente in modo che quando qualcuno fa clic su di esso, contiene ciò che hanno inserito nel campo dell'email. Dovresti convalidare l'input sulla pagina di ricezione.

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

Grazie, sono riuscito a farlo funzionare in base a questo codice. – Kevin

18

Se si desidera utilizzare il valore dell'email immesso da qualche altra parte sulla stessa pagina, ad esempio per eseguire una sorta di convalida, è possibile utilizzare JavaScript. In primo luogo vorrei assegnare un attributo "id" al tuo testo e-mail:

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

e quindi vorrei recuperare il valore con JavaScript:

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

Da lì, si può fare ulteriori elaborazioni sul valore della 'e-mail'.

1

Dipende da dove si desidera utilizzare l'e-mail. Se è sul lato client, senza inviarlo a uno script PHP, JQuery (o javascript) può fare il trucco.

ho creato un violino per spiegare lo stesso -

Ha un avviso che si stacca dal carico e quando si fa clic sul testo stesso.

1

Sì, è possibile utilizzare jQuery per rendere questo fatto, l'idea è

Utilizzare un valore nascosto nel modulo, e copiare il valore dalla casella di testo esterno a questo valore nascosto poco prima di inviare il modulo.

<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> 

vedi anche http://api.jquery.com/submit/

0

basta usare semplice 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>

si può anche cambiare la tipologia di ingresso e-mail come:

Problemi correlati