0

我问了这个问题,但是有这么多废话,我这次把它分解成最少的代码量。表单页面发送数据到确认页面。

确认页面将数据回显给用户,以便他们可以仔细检查。然后,如果他们单击“提交”,它会重新加载同一页面,然后向我发送一封电子邮件,然后它会更新表单操作的 url,并且由于 $url 不为空,因此在用户不知道的情况下,一点 javascript 会再次提交表单。一切正常,但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>
4

2 回答 2

1

删除这行代码而不是你想要的:

<input type="submit" value="submit" name="submit">

为什么?

那是因为“名字”。名称为“submit”的输入元素与提交功能冲突。您想调用“提交”函数,但浏览器刚刚获得了“提交”元素。

你可以试试这个:

alert(document.forms[0].submit);

这是一个元素。

顺便说一句,您可以在没有“提交”元素的情况下执行“提交”功能。

于 2011-03-11T17:40:56.050 回答
0

与其将数据重新发布到另一个 URL,为什么不在 PHP 中使用 cURL 对象在通过电子邮件发送后发送呢?

于 2011-03-11T17:10:07.913 回答