Здравствуйте, господа. На сайте стоит RSForm. Возникла необходимость сделать проверку на минимальное количество символов. Т.е. если в поле "Имя" введено менее 2 символов - выводить предупреждение об ошибке. В стандартном функционале RSForm этого не предусмотрено. Но зато в админке предусмотрено поле дополнительных атрибутов и поле "Max Size" (добавляет maxlength к input). Посему, не мудрствуя лукаво, было решено maxlength при необходимости выводить при помощи дополнительных атрибутов, а переменную MAXSIZE использовать для своих целей. Было добавлено условие на проверку заполнения MAXSIZE и длину строки. Сделал следующим образом: Код (PHP): if (!is_array($data['MAXSIZE']) && strlen(trim($_POST['form'][$data['NAME']])) <= $data['MAXSIZE']) { $invalid[] = $data['componentId']; continue; } Т.е. если MAXSIZE указан и длина строки менее или равна значению MAXSIZE, выводить сообщение об ошибке. Все работает. НО! Делаю проверку для поля "Имя". Ранее в админке указал, что для этого поля количество символов должно быть не менее двух (MAXSIZE). Если вводить имя английскими буквами - условие приведенное выше срабатывает. Т.е. если я ввожу одну или две буквы - выдается сообщение об ошибке. Если имя вводить русскими буквами, то условие страбатывает частично. Т.е. если ввожу одну букву - сообщение об ошибке. Если ввожу две русские буквы, то проверка не происходит. Сообщение об ошибке не выводится... Но если в админке для MAXSIZE указать 4 - то проверка срабатывает корректно. Где я пролетел? Спасибо.
я бы сделал для проверки следующую вещь: сначала вывел бы strlen(trim($_POST['form'][$data['NAME']])) а потом $data['MAXSIZE'] и посмотрел какие у них показатели это типа "дебуг моде" - так что ли назвать всё это через echo перед if
А смысл? $data['MAXSIZE'] выводит цифру, которую я указываю в админке (минимальное количество символов) $str = $_POST['form'][$data['NAME']]; echo strlen($str); выводит разные значения. Если ввожу 2 английских символа - то выводит 2, как и положено. Если ввожу 2 русских символа - то выводит 4, естественно условие не срабатывает... Но это и так было понятно. Я как раз и хочу разобраться, почему так...
а откуда у тебя берутся еще эти два лишних символа? посмотри чего тогда передаётся из формы, может где то там чего прибавляется если не латиницей написано я именно для этого предложил вывести перед сравнением, чтобы понять откуда ноги растут
Вот дурья башка, блин (это я про себя). Ставлю условие Код (PHP): if (!is_array($data['MAXSIZE']) && strlen(trim($_POST['form'][$data['NAME']])) <= $data['MAXSIZE']) Ну конечно же!!! strlen не работает с кириллицей в UTF-8. Отсюда и глюк... Нужно вот так: Код (PHP): if (!is_array($data['MAXSIZE']) && mb_strlen(trim($_POST['form'][$data['NAME']]), 'UTF-8') <= $data['MAXSIZE']) Ай, молодца, woojin, заставил подумать. Спасибо. А теперь я не могу тебе поставить плюс ))
я по этому где получается сделать вывод там везде его делаю, в процессе разработки, т.к. нормального дебугера найти не смог - пример: как в дельфи, который мне все переменные показывает, как правильно настроить ECLIPS я чего то не понял, может конечно кто и подскажет буду очень признателен а по этому вопросу на к sourpuss он вроде чего то пытался доделать, тема называется + не ставится
Всем привет. Надеюсь эта ветка еще жива... Вопрос по RSForm. Решил обхитрить жизнь... Форма в виде прайс-листа (название, чекбокс, количество) Прайс вогнал в таблицу базы данных. В php script написал откуда чего брать, куда вставлять, формировать... и т.д. Форму показывает, все красиво, чекбоксы и т.д Вопрос в следующем: Как эту красоту, которую юзер чекает в форме отправить мне на мыло? Где ковырять? ПС: joomla 1.5 RSForm последний для этой версии джумла. Спасибо!
насколько мне помнится там где то в настройках должна быть галочка или выпадающий список с возможностями формы в нём то и надо смотреть. чего она будет делать при нажатии на кнопку ОК, ОПРАВИТЬ, СОХРАНИТЬ (названия могут быть разные)
Решил расширить вопрос, т.с. добавить подробностей. Так форма выглядит в админке в Layout в код формы добавлено {my_data} В базе данных создана таблица прайса jos_price Сам php script выглядит так: Собственно на странице имеем результат: Шаблон имейла выглядит так: На мыло мне приходит то что в фигурных скобках. Вопрос: Как сделать так чтобы приходило то что почекано юзером в форме? Что нужно править (какую переменную), чтобы изменить вывод скрипта и добавить свои данные перед отправкой письма?
Так. А почему не сделать чеки непосредственно в RSForm? Делал похожее тут - http://kuhnilife.ru/index.php?option=com_rsform&view=rsform&Itemid=3
Или может вообще лучше использовать iPrice? Он совмещает функции прайса, калькулятора + отправка заявки. Использую у себя на сайте для предварительного расчета стоимости. Демо - http://minimart.lotix.ru/ru
Собственно можно, просто тут больше 60-ти позиций... и я подумал, что можно подумать, как сделать форму быстрее. Помозговали с другом-программистом, итог вы видите. Если знать подробности обработчика RSFORM, то можно было бы добиться желаемого. Если кто знает каких файлах компонента можно поковырятся, подскажите....
Все таки на Вашем месте я бы не стал лезть в глубину кода RSForm, чтобы соединить два решения, а добавил бы эти 60 позиций отдельными полями в RSForm. Это будет быстрее.
Лучше день потратить, и за 5 минут долететь © На добавление чекбокса с полем ввода количества уходит нормально времени. Потом эту форму править нужно, убирать, добавлять. Проще с базой работать
Потратил целый выходной. Ручками все сделал, каждую строчку. Провозился немного с цсс... Сделал шаблон письма, который приходит на мыло по кнопке отправить... В письме получаю ВЕСЬ список продукции из формы, ссылка на форму а очень хотелось получить лишь то что отметил юзер...
Добрый день! Помогите разобраться с разделом "Scripts", программист из меня плохонький, но чувствую, что именно там то, что мне нужно. Смысл в том, чтобы сделать что то вроде "мастера" - выводить разные варианты для выбора пользователю, а выбранный им вариант включать в конечную форму, с возможностью вывода ее на печать.