Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: if else $_POST
Форумы портала PHP.SU » » Вопросы новичков » if else $_POST

Страниц (1): [1]
 

1. imediasun - 13 Января, 2013 - 21:54:16 - перейти к сообщению
Почему при не нажатой кнопке submit выводится сообщение "submit"
PHP:
скопировать код в буфер обмена
  1.  
  2. if (isset($_POST['submit']));
  3. {
  4. echo "submit";}
  5.  

А следующая конструкция вообще выдает пустой экран
PHP:
скопировать код в буфер обмена
  1.  
  2. <form name="add_form" method="post" action="">
  3. <input disabled type="text" name="id"size="4" value="<?=$last_id;?>">
  4. <input type="text" name="field_name" size="13">
  5. <input type="text" name="xx"size="4">
  6. <input type="text" name="yy"size="4">
  7. <input type="submit" name="submit" value="добавить значения">
  8. </form>
  9. <?
  10. if (isset($_POST['submit']));
  11. {
  12. echo "submit";}
  13. else {
  14. echo "no submit";}
  15. ?>
  16.  

(Добавление)
разобрался так надо было
PHP:
скопировать код в буфер обмена
  1.  
  2. if (isset($_POST['submit'])){
  3. echo "submit";}
  4. else
  5. echo "no submit";
  6.  
2. DelphinPRO - 13 Января, 2013 - 21:57:43 - перейти к сообщению
1. Включи отображение ошибок
2. убери точку-с-запятой после if
(Добавление)
imediasun пишет:
Почему при не нажатой кнопке submit выводится сообщение "submit"
потому что нужно "очищать память" браузеру. если нажать F5 после того как отправил форму, форма отправится снова.
3. imediasun - 13 Января, 2013 - 22:07:09 - перейти к сообщению
Все равно при не нажатойй кнопке при обновлении страницы заполняется база
PHP:
скопировать код в буфер обмена
  1.  
  2. <form name="add_form" method="post" action="">
  3. <input disabled type="text" name="id"size="4" value="<?=$last_id;?>">
  4. <input type="text" name="field_name" size="13">
  5. <input type="text" name="xx"size="4">
  6. <input type="text" name="yy"size="4">
  7. <input type="submit" name="submit" value="добавить значения">
  8. </form>
  9. <?
  10. if (isset($_POST['submit'])){
  11. $id=$_POST['id'];
  12. $field_name=$_POST['field_name'];
  13. $xx=$_POST['xx'];
  14. $yy=$_POST['yy'];
  15. $sql_add="INSERT INTO graphic (id,field_name,xx,yy) VALUES ('$id','$field_name','$xx','$yy')";
  16. $query_add=mysql_query($sql_add)or die (mysql_error());
  17. if ($query_add) {echo "Данные успешно добавлены в таблицу";}
  18. else {echo "Данные не добавлены";}
  19. }
  20. else {echo "Ввыедите данные для добавления в базу";}
  21. ?>
  22.  

(Добавление)
DelphinPRO пишет:
1. Включи отображение ошибок
2. убери точку-с-запятой после if
(Добавление)
imediasun пишет:
Почему при не нажатой кнопке submit выводится сообщение "submit"
потому что нужно "очищать память" браузеру. если нажать F5 после того как отправил форму, форма отправится снова.

Как это делать?
4. Серж - 13 Января, 2013 - 22:15:43 - перейти к сообщению
Выполните перезапрос текущей страницы, чтобы избавиться от данных, отправленных методом POST,

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. header("Location: " . $_SERVER["PHP_SELF"]);
  3.  
5. vvn - 13 Января, 2013 - 22:17:32 - перейти к сообщению
В 17 строке твоего(перед else) кода нужно сделать редирект
CODE (htmlphp):
скопировать код в буфер обмена
  1. header('Location: http://site.com/index.php');
6. imediasun - 13 Января, 2013 - 22:22:11 - перейти к сообщению
А можно чтобы при этом надпись " Данные успешно добавлены в таблицу продержалась 5 секунд а потом появилась надпись Введите данные для добавления в базу"?
7. vvn - 13 Января, 2013 - 22:25:25 - перейти к сообщению
Редирект с задержкой можно сделать так:

CODE (htmlphp):
скопировать код в буфер обмена
  1. header('Refresh: 3; URL=http://www.site.com/php.htm');
  2. echo 'Через 3 сек. вы будете перенаправлены на новую страницу.';
  3.  
8. DelphinPRO - 13 Января, 2013 - 22:25:54 - перейти к сообщению
imediasun пишет:
А можно чтобы при этом надпись " Данные успешно добавлены в таблицу продержалась 5 секунд




или

PHP:
скопировать код в буфер обмена
  1. echo '<meta http-equiv="Refresh" content="5; url=/index.php" />';
9. imediasun - 13 Января, 2013 - 22:31:12 - перейти к сообщению
vvn пишет:
Редирект с задержкой можно сделать так:

CODE (htmlphp):
скопировать код в буфер обмена
  1. header('Refresh: 3; URL=http://www.site.com/php.htm');
  2. echo 'Через 3 сек. вы будете перенаправлены на новую страницу.';
  3.  

А в такой конструкции?
PHP:
скопировать код в буфер обмена
  1.  
  2. header("Location: " . $_SERVER["PHP_SELF"]);
  3. echo "Данные успешно добавлены в таблицу";
  4. echo "Через 5 секунд таблица будет перегружена";
  5.  
просто добавление refresh:5; не срабатывает
10. DelphinPRO - 13 Января, 2013 - 22:37:09 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. header('Refresh: 3; URL=' . $_SERVER["PHP_SELF"]);
11. imediasun - 13 Января, 2013 - 22:37:16 - перейти к сообщению
Друзья таком виде эти строки про добавление новых данных и 5-ти секундную задержку появляются и при старте страницы и при перегрузке ее видимо нужно очищать кэш как Дельфин сказал. И при перегрузке страницы данные добавляются произвольно, видимо надо обязательно так исспользовать "location: " . $_SERVER["PHP_SELF"]
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. if (isset($_POST['submit'])){
  4. $id=$_POST['id'];
  5. $field_name=$_POST['field_name'];
  6. $xx=$_POST['xx'];
  7. $yy=$_POST['yy'];
  8. $sql_add="INSERT INTO graphic (id,field_name,xx,yy) VALUES ('$id','$field_name','$xx','$yy')";
  9. $query_add=mysql_query($sql_add)or die (mysql_error());
  10. if ($query_add) {
  11. header('Refresh: 5;url=/ossistem/main.php');
  12. echo "Данные успешно добавлены в таблицу";echo "<br>";
  13. echo "Через 5 секунд таблица будет перегружена";
  14. }
  15. else {echo "Данные не добавлены";}
  16. }
  17. else {echo "Введите данные для добавления в базу";}
  18. ?>
  19.  

(Добавление)
DelphinPRO пишет:
PHP:
скопировать код в буфер обмена
  1. header('Refresh: 3; URL=' . $_SERVER["PHP_SELF"]);

Спасибо это помогло
12. DelphinPRO - 13 Января, 2013 - 22:46:12 - перейти к сообщению
возможно. я не знаю как работает refresh - обновление страницы или переход.
13. imediasun - 13 Января, 2013 - 22:47:10 - перейти к сообщению
DelphinPRO пишет:
возможно. я не знаю как работает refresh - обновление страницы или переход.

Посмотрите пожалуйста мою тему построение графика

 

Powered by ExBB FM 1.0 RC1