Получение значения ввода текста HTML - PullRequest
8 голосов
/ 10 января 2012

Скажем, у меня есть HTML-форма, подобная этой, чтобы получить электронное письмо от посетителя веб-сайта:

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

Теперь, когда нажата кнопка отправки, я могу получить значение поля электронной почты в handle_email.php, используя $ _POST ["email"]. Но скажем, я хотел бы использовать значение ввода текста электронной почты в другом месте. Можно ли получить значение электронной почты "за пределами" обработки формы?

ОБНОВЛЕНИЕ: Спасибо всем за их быстрые ответы. То, что я пытаюсь сделать, это заставить почтовый ящик выполнять двойные обязанности. Например, я переименовал кнопку отправки в «Информационный бюллетень» в приведенном выше коде. Когда эта кнопка нажата, скрипт handle_email.php просто подпишет пользователя на рассылку. Однако у меня также есть ссылка «Зарегистрироваться» на той же странице, которая перенаправляет посетителей на регистрационную форму, где они могут ввести много другой информации, если захотят. Теперь, если пользователь ввел данные в текстовое поле электронной почты, я бы хотел отправить их на страницу регистрации, чтобы это поле можно было предварительно заполнить. Например:

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

Приношу свои извинения за недостаточную ясность в моем первоначальном посте.

Ответы [ 6 ]

20 голосов
/ 10 января 2012

Если вы хотите использовать значение ввода электронной почты где-то еще на той же странице, например, для какой-либо проверки, вы можете использовать JavaScript. Сначала я бы назначил атрибут "id" для вашего текстового поля электронной почты:

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

и тогда я получу значение с помощью JavaScript:

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

Оттуда вы можете выполнить дополнительную обработку значения 'email'.

10 голосов
/ 10 января 2012

Смотрите мой jsFiddle здесь: http://jsfiddle.net/fuDBL/

Каждый раз, когда вы меняете поле электронной почты, ссылка обновляется автоматически.Это требует небольшого количества jQuery.Таким образом, теперь ваша форма будет работать по мере необходимости, но ваша ссылка будет обновляться динамически, поэтому, когда кто-то нажимает на нее, она содержит то, что они ввели в поле электронной почты.Вы должны подтвердить ввод на принимающей странице.

$('input[name="email"]').change(function(){
  $('#regLink').attr('href')+$('input[name="email"]').val();
});
1 голос
/ 10 января 2012

Если ваша страница обновляется при отправке - да, но только через строку запроса: http://www.bloggingdeveloper.com/post/JavaScript-QueryString-ParseGet-QueryString-with-Client-Side-JavaScript.aspx (тогда вы должны использовать метод "GET").Иначе, вы можете вернуть его значение из скрипта php.

1 голос
/ 10 января 2012

Зависит от того, где вы хотите использовать электронную почту. Если он на стороне клиента, без отправки его в сценарий PHP, JQuery (или javascript) может сделать свое дело.

Я создал скрипку, чтобы объяснить то же самое - http://jsfiddle.net/qHcpR/

Имеется предупреждение, которое гаснет при загрузке и при нажатии на само текстовое поле.

0 голосов
/ 11 января 2017

просто используйте легкий 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>

Вы также можете изменить тип ввода электронной почты, например:

0 голосов
/ 10 января 2012

Да, вы можете использовать jQuery, чтобы сделать это, идея

Используйте скрытое значение в своей форме и скопируйте значение из внешнего текстового поля в это скрытое значение непосредственно перед отправкой формы.

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

см. Также http://api.jquery.com/submit/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...