Всем добрый день. Бьюсь с проблемой который день.
Есть таблица "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
Не знаю, куда копать… Может, следует поменять разрешения на файлы, но на какие?
Заранее большое спасибо всем, кто откликнется.