Не Работает Ajax Валидация Форм

Всем добрый день. Бьюсь с проблемой который день.

Есть таблица "test" (PostgreSQL) и, соответственно, модель Test.

Использовался Gii CRUD Generator.

Валидация формы работает отлично, но без AJAX.

в TestController.php:




...

        public function actionCreate()

        {

                $model=new Test;

                $this->performAjaxValidation($model); //I uncommented this string

        ...

        }

        ...

        protected function performAjaxValidation($model)

        {

                if(isset($_POST['ajax']) && $_POST['ajax']==='test-form')

                {

                        echo CActiveForm::validate($model);

                        Yii::app()->end();

                }

        }               



в модели (Test.php):




public function rules()

        {

                return array(

                        array('firstname, surname', 'required','message'=>'Field required: {attribute}'),

...



в файле _form.php:




<?php $form=$this->beginWidget('CActiveForm', array(

        'id'=>'test-form',

        'enableAjaxValidation'=>true,

...     

        <div class="row">

                <?php echo $form->labelEx($model,'name'); ?>

                <?php echo $form->textField($model,'name',array('size'=>20,'maxlength'=>20)); ?>

                <?php echo $form->error($model,'name'); ?>

        </div>  



В файле /var/www/protected/views/layouts/main.php (Ubuntu) я вызываю jquery.yiiactiveform.js (и он расположен в /var/www/js):

<script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl; ?>/js/jquery.yiiactiveform.js"></script>

Остальные скрипты вызываю также, - работают.

Проблема усугубляется тем, что это общая ошибка, т.е. даже встроенная форма входа не работает с AJAX, не работают полученные кодогенератором фильтры в таблицах представления test/admin. Приходится все нужды в AJAX решать с помощью jQuery.

И еще не могу понять, почему на свежеустановленный yii, скажем, воспроизведенный пример www.dbhelp.ru/ajax-partialrender-update/page/ работал, но после вставки своей верстки view, включения Yii urlManager и модуля Apache mod_rewrite этот пример перестал работать. В файле /var/www/.htaccess записано следующее:




RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . index.php



Не знаю, куда копать… Может, следует поменять разрешения на файлы, но на какие?

Заранее большое спасибо всем, кто откликнется.

Сделайте учебный блог от начала и до конца, причем читая при этом документацию. Сгенерированая валидация работает прекрасно. Можно делать также для всего, можно делать аяксом, например с аякс кнопкой. Сие не является секретом и обсуждалось уже не раз что в этом разделе, что в tips&snippets.

Я до последнего надеюсь что это вы написали несерьезно. :blink:

Yii подключает скрипты сам, эти скрипты идут в папку assets. Там они кэшируются и регистрируются. За это отвечает CAssetManager и CClientScript. Тоесть если вы еще не поняли, вы загрузили скрипты 2 раза, что случается при этом - верно, ничего не работает и начинаются конфликты.

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

Извините если ответил грубо, или чем то вас обидел.

http://yiiframework.ru/doc/blog/ru/start.overview идем сюда и делаем пошагово. При этом вникая, читая документацию и спрашивая что непонятно.

ineersa, спасибо за указание на повторную загрузку скриптов.

Как оказалось, моя невнимательность.

Ошибку повторного вызова jquery было сложно отыскать, поскольку она была внутри html-комментария вида:




<!-- 

... 

<?php 

...

?> 

-->



Все работает!