За последние 24 часа нас посетил 26461 программист и 1814 роботов. Сейчас ищут 1006 программистов ...

отображение формы через функцию

Тема в разделе "PHP для новичков", создана пользователем sc2r2bey, 26 апр 2009.

  1. sc2r2bey

    sc2r2bey Активный пользователь

    С нами с:
    25 апр 2009
    Сообщения:
    76
    Симпатии:
    0
    хочу сделать чтоб форма запускалась через функцию, например основной скрипт

    Код (Text):
    1.  
    2. <?php
    3.  
    4. // подключение файла с функциями
    5. include 'competitor.function.php';
    6.  
    7. // проверяем была ли заполнена форма или нет
    8. if ($_SERVER['REQUEST_METHOD'] == 'GET')
    9. {
    10.     small_questionnaire(array());
    11. }
    12. else
    13. {
    14.     presurvey_small_questionnaire(array());
    15. }
    16. // далее скрипт записи данных в БД
    17. .....
    18. ?>
    далее файл с функциями

    Код (Text):
    1.  
    2. <?php
    3. // функция отображения формы
    4. function small_questionnaire()
    5. {
    6.  
    7. <div align="center">
    8. <form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" name="small_questionnaire" method="post">
    9. <table cellpadding="0" cellspacing="5" border="0" width="50%">
    10.         <tr>
    11.             <td>Имя: </td>
    12.             <td><input type="text" name="name" value="<?php echo $_POST['name']; ?>" size="25" /></td>
    13.         </tr>
    14.         <tr>
    15.             <td colspan="2"><input type="submit" value="Сохранить" name="save" /></td>
    16.         </tr>
    17. </table>
    18. </form>
    19. </div>
    20. <?php
    21. return array();
    22. }
    23.  
    24. // отображение результата
    25. function presurvey_small_questionnaire()
    26. {
    27. ?>
    28. <div align="center">
    29.  
    30. <table cellpadding="0" cellspacing="5" border="0" width="50%">
    31.         <tr>
    32.             <td>Имя: </td>
    33.             <td><?php echo $_POST['name']; ?></td>
    34.         </tr>
    35.         <tr>
    36.             <td><input type="submit" value="Сохранить" name="edit" /></td>
    37.             <td><input type="submit" value="Редактировать" name="save" /></td>
    38.         </tr>
    39. </table>
    40.  
    41. </div>
    42. <?php
    43. return array();
    44. }
    45. ?>
    Как сделать, чтоб при нажатии кнопки редактировать вызывалась первая функция, но при этом сохранялись ранее заполненые данные и форма отображалась с ранее заполненными полями.
    А если сохранить, то выполнялся скрипт записи введеных данных в БД, умен\я при нажатии кнопок данные теряются, с функциями никогда не работал ))
     
  2. ATI

    ATI Активный пользователь

    С нами с:
    3 янв 2008
    Сообщения:
    254
    Симпатии:
    0
    Адрес:
    Москва
    Данные в сессии. Вызов функций if (isset($_POST['save'])) function myFunc();
     
  3. T-Mon

    T-Mon Активный пользователь

    С нами с:
    2 янв 2008
    Сообщения:
    67
    Симпатии:
    0
    Адрес:
    Kyiv
    Если значений элементов массивов POST и SESSION с данными этой формы не объявлены - выводим пустую форму.
    Если объявлена POST - проверяем корректность формы и (если все правильно) заносим данные в БД и редирект куда-угодно, или записываем данные из POST в SESSION и редирект на себя (для очистки переменной POST).
    Если объявлена SESSION - выводим форму, заполненную данными из SESSION и очищаем ее.