我问了这个question,但是有这么多垃圾代码,我这次把它分解为最小代码量。表单页面发送数据以确认页面。
确认页面回显用户数据,以便他们仔细检查。然后,如果他们点击“提交”它重新加载相同的页面发送电子邮件给我然后它更新表单操作的URL和一个小的javascript再次提交表单,而用户不知道它,因为$ url不为空。一切正常,但 javascript没有发挥作用。页面就在那里,我可以在页面源中看到javascript,所以它就在那里。
表单页面:
<form action="test.php" method="post">
Name: <input type="text" name="name" value=""/>
<input type="submit" name="send" value="send"/>
</form>
确认页面:
<?
ini_set("display_errors","2");
ERROR_REPORTING(E_ALL);
$url = '';
if (isset($_POST['send']))
{
$data = $_POST['name'];
}else{
echo "SEND is not Set";
}
if (isset($_POST['submit']))
{
$data = $_POST['data'];
$my_message = ' TEST DATA:<br/><br/>Child Name'. $data .'';
$subject = 'Mike TEST';
$headers = "From: mrawers@xxxx.com\r\n";
$headers .= "Reply-To: mrawers@xxxx.com\r\n";
$headers .= "Content-type: text/html\r\n";
$url = "https://www.paypal.com/cgi-bin/webscr";
mail("mike.rawers@xxxx.com",$my_message,$subject,$headers);
}else{
echo "SUBMIT is not Set";
}
?>
<html>
<head>
</head>
<body>
<form action="<? echo $url; ?>" method="post">
Name: <? echo $data; ?><input type="hidden" name="data" value="<? echo $data; ?>"/><br/><br/>
<input type="submit" value="submit" name="submit">
</form>
<?
if ($url != "") {
?>
<script language="javascript">
document.forms[0].submit();
</script>
<?
}else{ echo "URL NOT SET";}
?>
</body>
</html>
答案 0 :(得分:1)
删除这行代码而不是你得到你想要的东西:
<input type="submit" value="submit" name="submit">
为什么?
那是因为&#34;名称&#34;。 输入元素名称为&#34;提交&#34;与提交功能冲突。 你想打电话给&#34;提交&#34;功能,但broswer刚刚得到&#34;提交&#34;元件。
你可以试试这个:
alert(document.forms[0].submit);
它是一个元素。
是的,你可以执行&#34;提交&#34;功能没有&#34;提交&#34;元件。答案 1 :(得分:0)
而不是将数据重新发布到另一个URL,为什么不在PHP中使用cURL对象在发送电子邮件后发送它?