web-dev-qa-db-fra.com

Obtenir la valeur de la saisie de texte HTML

Dites que j'ai un formulaire HTML comme celui-ci pour collecter un email d'un visiteur du site:

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

Maintenant, lorsque le bouton de soumission est pressé, je peux obtenir la valeur du champ email dans handle_email.php en utilisant $ _POST ["email"]. Mais disons que j'aimerais utiliser la valeur de la saisie de texte du courrier électronique ailleurs. Est-il possible d'obtenir la valeur de courrier électronique "en dehors" du traitement du formulaire?

MISE À JOUR: Merci à tous pour leurs réponses rapides. Ce que j'essaie de faire, c'est de faire en sorte que la boîte de courrier électronique fasse double emploi. Par exemple, j'ai renommé le bouton d'envoi en "Newsletter" dans le code ci-dessus. Lorsque vous appuyez sur ce bouton, le script handle_email.php ne fait qu'inscrire l'utilisateur à une newsletter. Cependant, j'ai également un lien "S'inscrire" sur la même page qui redirige le visiteur vers un formulaire d'inscription dans lequel il peut entrer beaucoup d'autres informations s'il le souhaite. Maintenant, si l'utilisateur a saisi des données dans la zone de texte de l'e-mail, j'aimerais les envoyer avec la page d'inscription afin que ce champ puisse être pré-rempli. Par exemple:

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

Mes excuses pour ne pas avoir été assez clair dans mon post original.

8
Kevin

Voir mon jsFiddle ici: http://jsfiddle.net/fuDBL/

Chaque fois que vous modifiez le champ de courrier électronique, le lien est mis à jour automatiquement. Cela nécessite une petite quantité de jQuery. Alors maintenant, votre formulaire fonctionnera au besoin, mais votre lien sera mis à jour de manière dynamique. Ainsi, lorsque quelqu'un cliquera dessus, il contiendra ce qu'il aura saisi dans le champ de courrier électronique. Vous devez valider la saisie sur la page de réception.

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

Si vous souhaitez utiliser la valeur de l'email saisie ailleurs sur la même page, par exemple pour effectuer une validation, vous pouvez utiliser JavaScript. D'abord, j'attribuerais un attribut "id" à votre textbox email:

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

et puis je récupérerais la valeur avec JavaScript:

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

À partir de là, vous pouvez effectuer un traitement supplémentaire sur la valeur de "courrier électronique".

19
Nick Tiberi

Cela dépend de l'endroit où vous souhaitez utiliser l'e-mail. Si c'est du côté client, sans l'envoyer à un script PHP, JQuery (ou javascript) peut faire l'affaire.

J'ai créé un violon pour expliquer la même chose - http://jsfiddle.net/qHcpR/

Il a une alerte qui s'éteint au chargement et lorsque vous cliquez sur la zone de texte elle-même.

1
Sagar Patil

Si votre page est actualisée lors de l'envoi - oui, mais uniquement via la chaîne de requête: http://www.bloggingdeveloper.com/post/JavaScript-QueryString-ParseGet-QueryString-with-Client-Side-JavaScript.aspx ( Vous devez utiliser la méthode "GET" alors) . Sinon, vous pouvez renvoyer sa valeur à partir du script php.

1
Michael Sazonov

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

vous pouvez aussi changer le type d'entrée de l'email comme:

0
REL

Oui, vous pouvez utiliser jQuery pour faire cela, l’idée est

Utilisez une valeur masquée dans votre formulaire et copiez la valeur de la zone de texte externe dans cette valeur masquée juste avant de soumettre le formulaire.

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

voir aussi http://api.jquery.com/submit/

0
Dipu Raj