За последние 24 часа нас посетили 215974 программиста и 2195 роботов. Сейчас ищут 1713 программистов ...

проверка формы, возврат значений

Тема в разделе "PHP для новичков", создана пользователем Koc, 10 дек 2008.

  1. Koc

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

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    Итак, у нас есть форма с некоторыми полями. Есть пользователь, у которого отключен JS. Форму нужно проверить, в случае если что-то не так - не заливать в базу а вернуть ту же самую форму с теми же значениями, которые ввел пользователь и как-то отметить проблемные поля.

    Как это обычно делается?

    На ум приходит что-то типа:
    if(empty($_POST['title']))
    $errors[] = ('title', 'пустое значение');
    ....
    if(!errors)
    //заливаем в базу
    else
    //возвращаем страницу и как-то отмечаем проблемные поля

    Но хочется правильный алгоримт и/или пример, кусок кода
     
  2. djunkie

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

    С нами с:
    19 ноя 2008
    Сообщения:
    134
    Симпатии:
    0
    PHP:
    1. else {
    2. //проверяем, какие передались, например
    3. if (isset($_POST['var1'])) {$var1 = $_POST['var1'];}
    4. ...
    5. echo "<form action=\"$_SERVER['PHP_SELF']\" method=\"POST\">
    6.         <input type=\"text\" name=\"var1\" value=\"$var1\">"
    7. }
    8.  
    можно так сделать, так вернутся заполненные поля
     
  3. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    PHP:
    1. <?php
    2. $errors['title'] = 'пустое значение';
    PHP:
    1. <?php print isset($errors['title']) ? $errors['title'] : '';?>
     
  4. Koc

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

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    у меня обработчики форм висят на другом файле (recive.php). Есть шаблонизатор. Для редактирования чего-либо используются другие шаблоны, не такие, как для добавления чего-либо (tpl/add-manufacturer.htm, tpl/edit-manufacturer.htm)
    нужно объединять в один!!!!11

    Шаблон будет примерно такой:

    <form ...>
    поле1:<br>
    [:error:]
    <input name="name1" value="[:value1:]">
    ...
    </form>

    В php-файле будем просто устанавливать значения переменных, или не устанавливать-> они будут игнорироваться.
    Ну и все-таки массив ошибок потребуется скорее всего.

    В общем примерные идеи реализации наметил, буду воплощать в жизнь.

    Теперь вопрос в другом: а если яваскрипт будет включен, сабмит через аякс. Что должен возвращать аякс-запрос: json/html/js ? Склоняюсь к html-у, который будет повторять шаблон и который буду загонять в слой