Отправить данные дважды на одной странице - PullRequest
0 голосов
/ 11 марта 2011

Я задал этот вопрос , но у меня было так много дерьмового кода, что я на этот раз разбил его до минимального количества кода.Страница формы отправляет данные для подтверждения страницы.

Подтвердите эхо-данные страницы для пользователей, чтобы они могли дважды проверить их.затем, если они нажимают «отправить», он перезагружает ту же страницу, отправляет мне электронное письмо, затем обновляет 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>

Ответы [ 2 ]

1 голос
/ 11 марта 2011

Удалите эту строку кода, и вы получите то, что хотите:

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

Почему?

Это из-за "имени". Элемент ввода с именем «submit» конфликтует с функцией submit. Вы хотели вызвать функцию submit, но брат только что получил элемент submit.

Вы можете попробовать это:

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

Это элемент.

Кстати, вы можете извинить функцию submit без элемента submit.

0 голосов
/ 11 марта 2011

Вместо повторной публикации данных на другой URL, почему бы не использовать объект cURL в PHP для отправки его после отправки по электронной почте?

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