it-swarm.com.de

Wert der HTML-Texteingabe abrufen

Angenommen, ich habe ein solches HTML-Formular, um eine E-Mail von einem Website-Besucher zu sammeln:

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

Wenn Sie jetzt auf die Schaltfläche zum Senden klicken, kann ich den Wert des E-Mail-Felds in handle_email.php mithilfe von $ _POST ["email"] abrufen. Angenommen, ich möchte den Wert der E-Mail-Texteingabe an anderer Stelle verwenden. Kann der E-Mail-Wert "außerhalb" der Formularverarbeitung abgerufen werden?

UPDATE: Vielen Dank an alle für die schnellen Antworten. Was ich versuche zu tun, ist, dass die E-Mail-Box doppelte Aufgaben erledigt. Zum Beispiel habe ich den Absenden-Button im obigen Code in "Newsletter" umbenannt. Wenn diese Schaltfläche gedrückt wird, wird der Benutzer mit dem Skript handle_email.php einfach für einen Newsletter angemeldet. Ich habe jedoch auf derselben Seite auch den Link "Registrieren", über den der Besucher zu einem Registrierungsformular geleitet wird, auf dem viele weitere Informationen eingegeben werden können. Wenn der Benutzer zufällig Daten in das E-Mail-Textfeld eingegeben hat, möchte ich sie zur Registrierungsseite mitsenden, damit das Feld vorab ausgefüllt werden kann. Zum Beispiel:

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

Ich entschuldige mich dafür, dass ich in meinem ursprünglichen Beitrag nicht klar genug war.

8
Kevin

Sehen Sie mein jsFiddle hier: http://jsfiddle.net/fuDBL/

Wenn Sie das E-Mail-Feld ändern, wird der Link automatisch aktualisiert. Dies erfordert eine kleine Menge von jQuery. Ihr Formular funktioniert nun also wie gewünscht, aber Ihr Link wird dynamisch aktualisiert, sodass beim Klicken auf das Formular das in das E-Mail-Feld eingegebene Element angezeigt wird. Sie sollten die Eingabe auf der Empfängerseite überprüfen.

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

Wenn Sie den Wert der E-Mail-Eingabe an anderer Stelle auf derselben Seite verwenden möchten, um beispielsweise eine Art Validierung durchzuführen, können Sie JavaScript verwenden. Zuerst würde ich Ihrem E-Mail-Textfeld ein "id" -Attribut zuweisen:

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

und dann würde ich den Wert mit JavaScript abrufen:

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

Von dort aus können Sie eine weitere Verarbeitung für den Wert "E-Mail" vornehmen.

19
Nick Tiberi

Hängt davon ab, wo Sie die E-Mail verwenden möchten. Wenn es sich auf der Clientseite befindet, ohne es an ein PHP -Skript zu senden, kann JQuery (oder Javascript) den Trick ausführen.

Ich habe eine Geige erstellt, um dasselbe zu erklären - http://jsfiddle.net/qHcpR/

Es gibt eine Warnung, die beim Laden und beim Klicken auf das Textfeld selbst ausgelöst wird.

1
Sagar Patil

Wenn Ihre Seite beim Senden aktualisiert wird - Ja, aber nur über die Querzeichenfolge: http://www.bloggingdeveloper.com/post/JavaScript-QueryString-ParseGet-QueryString-with-Client-Side-JavaScript.aspx Sie müssen dann die Methode "GET" verwenden.) . Andernfalls können Sie den Wert aus dem PHP-Skript zurückgeben.

1
Michael Sazonov

verwenden Sie einfach 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>

sie können den Typ der E-Mail-Eingabe auch wie folgt ändern:

0
REL

Ja, Sie können jQuery verwenden, um dies zu erreichen

Verwenden Sie einen verborgenen Wert in Ihrem Formular, und kopieren Sie den Wert aus dem externen Textfeld in diesen verborgenen Wert, bevor Sie das Formular absenden.

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

siehe auch http://api.jquery.com/submit/

0
Dipu Raj