За последние 24 часа нас посетили 50073 программиста и 1758 роботов. Сейчас ищут 999 программистов ...

Как бы сделать формвалидатор

Тема в разделе "Прочие вопросы по PHP", создана пользователем Mr.M.I.T., 18 мар 2009.

  1. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    Формвалидатор, вроде так называется приблуда да автоматического сохранения данных в текстовых полях
    так вот, всё бы казалось просто, но у меня в целях предотвращения дублирования ключей пост данных, сделано как в примере:
    форма по адресу /showpost/{id}/
    а комментарий добавляется /comments/add/{post_id}/
    потом происходит переадресация обратно
    при этом не факт что комментарий будет добавлен, а может быть ошибка ест-но все данные введённые в форме будут утеряны (если конечно браузер не кеширует)

    так вот проблемный вопрос, как мне передать данные, пришедшие к экшину добавления из формы, обратно форм валидатору на обработку этой формы,
    Сессии, БД? :?
     
  2. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    На последнем проекте мне было лень писать в сессию и я при ошибке кидал на страницу с формой, но там была json-строка, которую разгребал.... Там и ошибки, и данные, забитые юзером.
     
  3. Alost

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

    С нами с:
    7 фев 2009
    Сообщения:
    335
    Симпатии:
    0
    Адрес:
    Город вокруг невы
    Ну по мне так, переадресовывать надо как раз после успешного ввода данных.
     
  4. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    мм а как ты данные то передавал, на эту страницу с формой?
    Alost
    а если не верный ввод, я показал ошибку, теперь юзверю её нужно исправить, не заполнять же ему все поля заново, если ошибка в каком-то одном
     
  5. Alost

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

    С нами с:
    7 фев 2009
    Сообщения:
    335
    Симпатии:
    0
    Адрес:
    Город вокруг невы
    Можно вывести ошибку на той же странице где форма заполняеться.В итоге пользователь увидит ошибку, и будет уже иметь заполненые поля.
     
  6. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    Alost
    нет, это сделано спец.
     
  7. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    PHP:
    1.  
    2. <?php
    3. }
    4. if (isset($data["takepart"]["errors"])) {
    5. ?>
    6. <script type="text/javascript">
    7. var errstring = '<?php echo $data["takepart"]["errors"] ?>';
    8. var errors = eval('('+errstring+')');
    9. for (row in errors) {
    10.     var el = document.getElementById(row);
    11.     var nodes = el.parentNode.childNodes;
    12.     for (i = 0; i < nodes.length; i++) {
    13.         if (nodes[i] == el) {
    14.             var span = document.createElement("span");
    15.             span.innerHTML = errors[row];
    16.             el.parentNode.insertBefore(span, nodes[(i+1)]);
    17.         }
    18.     }
    19. }
    20.  
    21. var postdata = '<?php echo $data["takepart"]["formdata"] ?>';
    22. var posobj = eval('('+unescape(postdata)+')');
    23. for (row in posobj) {
    24.     document.getElementById(row).value = posobj[row];
    25. }
    26. </script>
    27. <?php
    28. }
    29. ?>
     
  8. akrinel

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

    С нами с:
    26 янв 2009
    Сообщения:
    955
    Симпатии:
    1
    Адрес:
    Spb
    Mr.M.I.T., вариант просто сделать Аяксом отправку форм не катит? Все данные как были так и остануться введенными, тебе только остается показать/скрыть ошибки.
     
  9. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    Kreker
    вот меня и интересует откуда берётся переменная Дата, у меня же страницы разные,
    т.е. ешё раз
    данные со стр.1 идут на стр.2 и надо их вернуть обратно на стр.1
    akrinel
    не, не у всех JS включён, да и замораваться не хочется,
    у меня то браузер кеширует =)
     
  10. mantell

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

    С нами с:
    7 окт 2008
    Сообщения:
    125
    Симпатии:
    1
    По мне так сессии лучший вариант, ими и делаю.
     
  11. Frozen

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

    С нами с:
    20 окт 2008
    Сообщения:
    540
    Симпатии:
    0
    Адрес:
    Москва
    детская отмазка
     
  12. mantell

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

    С нами с:
    7 окт 2008
    Сообщения:
    125
    Симпатии:
    1
    Ну в идеале да, аякс. Но не панацея.
     
  13. akrinel

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

    С нами с:
    26 янв 2009
    Сообщения:
    955
    Симпатии:
    1
    Адрес:
    Spb
     
  14. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    я тоже так и хотел сделать, то тыры пыры, чёто не то =)
    Аякс я не хочу видеть у себя, в таких операциях, впринципе, ну не к месту он тут имхо...

    Луговой, Горбунов, вы где? =)
    Зы. А может как браузер ЗАСТАВИТЬ кешировать?
     
  15. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    я Webmoney прикручиваю...
     
  16. он полоний закупает
     
  17. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    палюсь, блин...
     
  18. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    Ну вот все в сборе, давайте разбирацо, как делает Андрей, Олег?
    да да, все читали твой ЖЖ ;)
     
  19. А Олег все, завязал с программированием, Олег теперь художник. Пруфпик прилагается:
    [​IMG]
     
  20. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    я вот так:

    [​IMG]

    а потом вот так:

    [​IMG]

    нет. вот так:

    [​IMG]

    а потом ваще вот так:

    [​IMG]

    чтобы потом вот так:

    [​IMG]

    а на самом деле я такой:

    [​IMG]
     
  21. akrinel

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

    С нами с:
    26 янв 2009
    Сообщения:
    955
    Симпатии:
    1
    Адрес:
    Spb
    440Hz, я так и не понял, на последней фоте ты тот, что в телике, или тот что в белой рубашке?

    Подписал бы хоть
     
  22. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    А где семья?
     
  23. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    была месяца 4 назад. теперь уж нету...
     
  24. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    флоппик
    наверно балванку подписывал? ;)
    440Hz
    Так и рождаются код хайлоад? за столом и в лимузине...
    а вообще пуск вверху говорит о многом =)
     
  25. не, на болванках удобно краски смешивать, вместо палитры.