假设我有一个这样的HTML表单来收集网站访问者的电子邮件:
<form name="input" action="handle_email.php" method="post">
Email: <input type="text" name="email" />
<input type="submit" value="Newsletter" />
</form>
现在,当按下提交按钮时,我可以使用$ _POST [“email”]获取handle_email.php中电子邮件字段的值。但是说我想在其他地方使用电子邮件文本输入的值。是否可以在表单处理的“外部”获取电子邮件值?
更新:感谢大家的快速回复。我要做的是让电子邮箱进行双重任务。例如,我在上面的代码中将提交按钮重命名为“Newsletter”。按下该按钮后,handle_email.php脚本将只注册用户以获取新闻稿。但是,我在同一页面上还有一个“注册”链接,可以将访问者重定向到注册表单,如果他们愿意,可以输入大量其他信息。现在,如果用户碰巧在电子邮件文本框中输入了数据,我想将其发送到注册页面,以便可以预先填充该字段。例如:
<a href="http://mywebsite.com/register?user_email="[how can I put the email here?]"/>Register</a>
对于我在原帖中不够清楚而道歉。
答案 0 :(得分:19)
如果要在同一页面上的其他位置使用电子邮件输入的值,例如进行某种验证,则可以使用JavaScript。首先,我会为您的电子邮件文本框指定一个“id”属性:
<input type="text" name="email" id="email"/>
然后我会用JavaScript检索该值:
var email = document.getElementById('email').value;
从那里,您可以对'email'的值进行额外处理。
答案 1 :(得分:10)
在这里查看我的jsFiddle:http://jsfiddle.net/fuDBL/
每当您更改电子邮件字段时,链接都会自动更新。这需要少量的jQuery。因此,现在您的表单将根据需要运行,但您的链接将动态更新,以便当有人点击它时,它包含他们在电子邮件字段中输入的内容。您应该验证接收页面上的输入。
$('input[name="email"]').change(function(){
$('#regLink').attr('href')+$('input[name="email"]').val();
});
答案 2 :(得分:1)
取决于您要使用电子邮件的位置。如果它是在客户端,而不是发送到PHP脚本,JQuery(或javascript)可以做到这一点。
我创造了一个解释相同的小提琴 - http://jsfiddle.net/qHcpR/
它有一个警告,当你点击文本框本身时会加载。
答案 3 :(得分:1)
如果您的页面在提交时刷新 - 是的,但只能通过查询字符串:http://www.bloggingdeveloper.com/post/JavaScript-QueryString-ParseGet-QueryString-with-Client-Side-JavaScript.aspx(您必须使用方法“GET”)。 否则,您可以从php脚本返回其值。
答案 4 :(得分:0)
是的,你可以使用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>
答案 5 :(得分:0)
只需使用简单的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>
您还可以更改电子邮件输入的类型,例如: