Выполнение проверки на стороне клиента и на стороне сервера с использованием jQuery и CodeIgniter - PullRequest
4 голосов
/ 13 марта 2010

Как правильно выполнять проверку на стороне клиента и на стороне сервера с использованием jQuery и CodeIgniter? Я использую плагин формы jQuery для отправки формы. Я хотел бы использовать плагин проверки jQuery (http://docs.jquery.com/Plugins/Validation) для проверки на стороне клиента и проверки формы CodeIgniter на стороне сервера. Однако эти два, похоже, не слипаются (или я не могу разобраться с этим) Может кто-нибудь помочь, пожалуйста? Будь то проверка на стороне клиента или на стороне сервера, пользователь должен видеть непротиворечивый интерфейс, отображающий сообщения об ошибках рядом с полями ввода.

[Редактировать] Похоже, что я могу передать ошибки на стороне сервера в showErrors (), как здесь (http://forum.jquery.com/topic/jquery-validation-showerrors-error). Однако, если я делаю дополнительные проверки на стороне сервера (например, проверка, если имя пользователя уже занято), которые не Если он не присутствует в клиентских правилах, то плагин проверки очищает эти сообщения проверки, когда пользователь выходит из этих полей.

Ответы [ 4 ]

3 голосов
/ 15 ноября 2010

Как уже упоминалось, это две разные вещи.

Просто создайте проверку на стороне клиента в Jquery, если она пройдет, передайте ее контроллеру форм и запустите там проверку / фильтрацию xss.

Попробуйте http://formigniter.org/, он создаст вашу форму (представление), модель, SQL и контроллер с включенной проверкой. Легкий горох ...

Надеюсь, это поможет.

0 голосов
/ 13 марта 2010

Не хотите ли вы дублировать правила и сообщения проверки на стороне сервера в проверке на стороне клиента? Это не поддерживается в базовой платформе CodeIgniter.

Я огляделся по вики CodeIgniter, и кто-то написал библиотеку для создания javascript из правил проверки на стороне сервера . Я не пробовал это. Но это может быть то, что вы ищете.

0 голосов
/ 14 марта 2010

Я хотел сделать то же самое, это можно сделать, но это сложно. Что вы можете сделать, это создать надежные методы проверки на стороне сервера, которые вы вызываете с помощью Ajax удаленно. Если JavaScript не включен, вы просто используете обычные методы проверки на стороне сервера без удаленных вызовов. Таким образом, у вас будет только одна кодовая база для проверки.

Однако проблема в том, что проверка вашего клиента будет намного медленнее, поскольку он постоянно должен взаимодействовать с серверной частью. Еще большая проблема заключается в том, что вы не сможете использовать некоторые мощные клиентские библиотеки проверки, поскольку все они предполагают, что проверка выполняется на клиенте, а не удаленно.

Я просто разочаровался в достижении этого. Мне пришлось дублировать мою логику проверки и сообщение об ошибке на клиенте и сервере. Это не идеально, но лучше всего подходит для пользователей, и вы сможете использовать великолепные интерфейсные библиотеки.

0 голосов
/ 13 марта 2010

Что неясно? Каждый метод будет отличаться.

На высоком уровне, по сути, вы будете использовать проверку на стороне клиента перед отправкой данных формы. Если проверка на стороне клиента прошла успешно, отправьте форму и запустите проверку на стороне сервера. Если проверка на стороне сервера завершится неудачно, то при повторной визуализации страницы должна появиться ошибка, а также, если проверка / сохранение прошла успешно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...