2010-03-13 7 views
4

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

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

ответ

3

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

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

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

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

+0

Только что заметил дату на этом посту. О, дорогой, никакой волшебный зеленый тик для меня :( –

+0

Упрощенный и принятый ответ ... У меня еще не было времени попробовать еще – Zero

+0

Ах отлично, спасибо! –

0

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

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

+0

JQuery плагин проверки делает две вещи: 1) Запуск проверки сообщений 2) ошибки отображения, если проверка не пройдена При запуске проверки на стороне сервера (после того, как AJAX Submit), я предпочел бы один и тот же код для шага 2. Как я это делаю? – Zero

0

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

Я просмотрел вики CodeIgniter, и кто-то написал a library to generate javascript from server side validation rules. Я не пробовал. Но это может быть то, что вы ищете.

0

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

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

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