2011-01-03 2 views
3

Как я могу отобразить предупреждение после того, как пользователь нажмет кнопку отправки в форме?Показать сообщение после отправки

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

Есть ли способ сделать это?

EDIT:

мне нужно сообщение, чтобы быть HTML текст, который отображается на странице - не Javascript оповещения.

+0

@codedude - предупреждение является оповещением JavaScript? или просто HTML, отображающий текстовое сообщение? – ajreal

+0

Что содержит предупреждение? Любая информация из формы? Возвращает ли форма на той же странице или на другой странице? – jmort253

+0

Предупреждение будет просто простым старым html-текстом. Форма возвращается на ту же страницу. – codedude

ответ

3

pagewithform.php

<html> 
    <head> 
    ... 
    </head> 
    <body> 
    ... 
    <form action="myformsubmit.php" method="POST"> 
     <label>Name: <input type="text" name="name" /><label> 
     <input type="Submit" value="Submit" /> 
    </form> 
    ... 
    </body> 
</html> 

myformsubmit.php

<html> 
    <head> 
    .... 
    </head> 
    <body> 
    <?php if (count($_POST)>0) echo '<div id="form-submit-alert">Form Submitted!</div>'; ?> 
    ... 
    </body> 
</html> 

EDITED Подходит новый critieria ОП на последнем редактирование.

EDITv2 Попробуйте у себя дома!

<html> 
    <head> 
    <title>Notify on Submit</title> 
    </head> 
    <body> 
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST"> 
     <label>Name: <input type="text" name="name" /></label> 
     <input type="submit" value="Submit" /> 
    </form> 
    <?php if (count($_POST)>0) echo "Form Submitted!"; ?> 
    </body> 
</html> 

Попробуйте это для размера.

+0

(См. Отредактированный пост) – codedude

+0

@codedude: Отмечено, теперь см. Мой отредактированный пост.;-) –

+0

Вы уверены, что это сработает? – Shoe

0

Поскольку вы отправляете обратно на ту же страницу, более чистым и современным способом сделать это будет использование JQuery для отправки формы с использованием AJAX. Вы можете указать метод обратного вызова, который будет обновлять контейнер на странице, чтобы отразить изменения в состоянии:

$('#myForm').submit(function() { 
    $('#myResultDiv').text("Form submitted"); 
    return false; 
}); 


... 

<div id="myResultDiv"></div> 

Это предотвращает ненужную перезагрузку страницы, что делает ваш веб-приложение мгновенным и более отзывчивой.

Это также имеет дополнительное преимущество в том, что вы сохраняете свой HTML и JavaScript (контент и поведение) отдельно, за что ваши веб-дизайнеры будут вам благодарны.

Это будет работать практически с любой серверной платформой, включая, помимо прочего, PHP.

+0

Я бы использовал Ajax, если бы у меня было хорошее представление о том, как это работает. Сейчас у меня в основном нет. – codedude

+0

Это на самом деле один из самых простых примеров. Когда ваш пользователь нажимает кнопку отправки, данные формы отправляются на ваш PHP-скрипт так же, как обычно, за исключением того, что пользователь продолжает видеть одну и ту же страницу. Когда форма обрабатывается, вызывается анонимная функция, связанная с «submit», а текст «Form, представленный» вставляется в DIV с id = «myResultDiv». На мой взгляд, в зависимости от того, сколько у вас времени и терпения, стоит исследовать, так как это улучшит удобство использования вашего приложения. Конечно, здесь есть много других решений, которые, вероятно, будут вам более легкими. – jmort253

+0

Следует отметить, что AJAX следует по-прежнему считать дополнением, а не альтернативой. Современная практика заключается в том, чтобы делать что-то с переходом страницы и, когда это возможно/поддерживается, сделать их бесшовными с помощью вызовов AJAX. –

0
<?php 

echo "<html> 
<head> 
</head>"; 

if($_POST['submit']){ 
    echo 'The form was submitted!"; 
} else { 
    echo '<form action="'.$_SERVER['PHP_SELF'].'" method="POST"><input type="submit" name="submit" value="Submit">'; 
} 

echo "</html>"; 

?> 
0

Поскольку вы отправляете обратно на ту же страницу, уборщик и более современный способ сделать это было бы использовать JQuery для отправки формы с помощью AJAX. Затем вы можете указать метод обратного вызова, который будет обновлять контейнер на странице, чтобы отразить изменение состояния:

Смежные вопросы