Javascript 使预填充的PHP表单在页面加载时提交
我已经构建了一个工作的PHP表单,它包含5个字段,这些字段由URL查询字符串预先填充 查询字符串URL位于HTML电子邮件的超链接上,要求收件人单击此处进行预订。我已经得到了他们的详细信息,因为我已经向他们发送了电子邮件,所以表格会预先填充 如何让表单在页面加载时立即提交并重定向到感谢页面 以下是我的表格目前的样子:-Javascript 使预填充的PHP表单在页面加载时提交,javascript,php,forms,Javascript,Php,Forms,我已经构建了一个工作的PHP表单,它包含5个字段,这些字段由URL查询字符串预先填充 查询字符串URL位于HTML电子邮件的超链接上,要求收件人单击此处进行预订。我已经得到了他们的详细信息,因为我已经向他们发送了电子邮件,所以表格会预先填充 如何让表单在页面加载时立即提交并重定向到感谢页面 以下是我的表格目前的样子:- <form name="frm" id="frm" method="POST"> <input name="firstname" id="firstname"
<form name="frm" id="frm" method="POST">
<input name="firstname" id="firstname" type="text" value="<?php echo ((isset($_GET["firstname"]))?htmlspecialchars($_GET["firstname"]):""); ?>" />
<input name="lastname" id="lastname" type="text" value="<?php echo ((isset($_GET["lastname"]))?htmlspecialchars($_GET["lastname"]):""); ?>" />
<input name="email" id="email" type="text" value="<?php echo ((isset($_GET["email"]))?htmlspecialchars($_GET["email"]):""); ?>" />
<input name="company" id="company" type="text" value="<?php echo ((isset($_GET["company"]))?htmlspecialchars($_GET["company"]):""); ?>" />
<input name="contactid" id="contactid" type="text" value="<?php echo ((isset($_GET["contactid"]))?htmlspecialchars($_GET["contactid"]):""); ?>" />
<input type="submit" name="Submit" value="submit" />
</form>
这是整个页面的粘贴箱:
感谢您尝试使用:
document.getElementById('frm').submit()
而不是document.getElementById('frm1').submit()代码>
并使其在页面加载后执行:
window.onload=function(){
document.getElementById('frm').submit();
}
好的,那么基本上你一直在尝试通过url获取信息,将它们插入表单中,然后提交表单,这样你就可以发送电子邮件了。这一切都很好,尽管你只是让事情变得更难。
你需要做的是删除表单(我们其实不需要这个),而不是处理所有你想从表单中获取的$\u POST信息,你要用你已经从url中获取的$\u get数组来完成这项工作,在一天结束时,情况完全相同,因为您在表单中插入的信息只是您从url中获得的信息
因此,如果您按以下方式更改此选项,您的脚本将正常工作:
//Get the submitted data
$firstname = cleanText($_GET['firstname']);
$lastname = cleanText($_GET['lastname']);
$email = cleanText($_GET['email']);
$company = cleanText($_GET['company']);
$contactid = cleanText($_POST['contactid']);
下面是将要发生的事情:用户将在一个链接上使用clic,您的脚本将获取$\u get数组,处理它,根据该数组发送电子邮件,然后将用户发送到thankyou.php页面。请注意,如果在thankyou.php中插入脚本,可以提高脚本的效率并为用户节省一些时间
最后但并非最不重要的是,我想向你们指出,这不是很好的做法,得到一个url提交发送电子邮件。。。你可能最终让一个机器人通过这个url发送大量电子邮件,并将你的电子邮件列入黑名单。如果我是你,我要么控制ip,确保每10分钟发送一封邮件,要么在最适合你的时间发送一封邮件,要么在页面中添加验证码,这样用户就需要证明他是一个真正想浪费时间发送邮件的人。为什么你需要此表单?你为什么不直接进入你的信息处理页面(如果不是同一个页面呢?)。您可以使用$\u GET数组来处理$\u POST数组,而不是处理$\u POST数组。我自己看不到错误,因为当我尝试该页面时,该页面处于自动循环中,但这里有一个页面:当然是@bastienbot,您知道我需要在代码中更改什么吗?我现在已经用我的代码更新了pastie链接。谢谢!当然您正在提交到同一个页面,因此该函数会反复执行。。。如果知道表单已提交,则应防止调用submit()函数。
//Get the submitted data
$firstname = cleanText($_GET['firstname']);
$lastname = cleanText($_GET['lastname']);
$email = cleanText($_GET['email']);
$company = cleanText($_GET['company']);
$contactid = cleanText($_POST['contactid']);