Не работает связка ajax и renderpartial

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Закрыто
Странник
Сообщения: 289
Зарегистрирован: 2013.04.08, 10:35
Откуда: Нижний Новгород

Не работает связка ajax и renderpartial

Сообщение Странник »

Почему не работает renderPartial в такой связке?
Контроллер:

Код: Выделить всё

public function actionIndex()
{
	$model=new Text('search');
	$model->unsetAttributes();
	$right='';
	if(Yii::app()->request->isAjaxRequest) {
		$id = $_POST['id'];
		$right = Text::model()->findByPk($id)->text;
		$this->renderPartial('_right', array('right'=>$right), false, false);
		Yii::app()->end();
	}
	elseif(isset($_POST['Text'])) {
		$model->attributes=$_POST['Text'];
		$dataProvider=Text::model()->findAll();
		$this->render('index',array(
			'model'=>$model,
			'dataProvider'=>$dataProvider,
			'right'=>$right,
		));	
	}
	else {
		$dataProvider=new CActiveDataProvider('Text');
		$this->render('index',array(
			'model'=>$model,
			'dataProvider'=>$dataProvider,
			'right'=>$right,
		));	
	}
}
index.php

Код: Выделить всё

<div class="left">
<?php $form=$this->beginWidget('CActiveForm', array(
	'action'=>Yii::app()->createUrl($this->route),
	'method'=>'post',
)); ?>
	<div class="search_main">
		<div class="row">
			<?php echo $form->label($model,'text'); ?>
			<?php echo $form->textField($model,'text',array('size'=>30,'maxlength'=>100)); ?>
		</div>
		<div class="row buttons">
			<?php echo CHtml::submitButton('Найти'); ?>
		</div>
	</div>
<?php $this->endWidget(); ?>
</div>
<?php 
if (trim($model->text) =='') {
?>
<div class="middle">
</div>
<div class="right">
</div>
<?php 
}
else { 
?>
<div class="middle">
<h3>Название</h3>
<?php
foreach($dataProvider AS $data) {
	echo '<div>'.
	CHtml::form().CHtml::hiddenField('id',$data->id).
	CHtml::ajaxSubmitButton($data->title, '', array('type' => 'POST','update' => '#output',),array('type' => 'submit')).
	CHtml::endForm();
	echo "</div>"; 
}  
?>
</div>
<?php
	$this->renderPartial('_right', array('right'=>$right));
?>
<?php
}
?>
_right.php

Код: Выделить всё

<div class="right">
<?php
	echo $right;
?>
</div>
Странник
Сообщения: 289
Зарегистрирован: 2013.04.08, 10:35
Откуда: Нижний Новгород

Re: Не работает связка ajax и renderpartial

Сообщение Странник »

Одну ошибку нашёл. Забыл поставить id у <div class="right">/
Исправил, но всё равно не работает.
На сервер запрос по ajax приходит. Id определяется.
А вот назад по rendelPartial не отрабатывает.
Странник
Сообщения: 289
Зарегистрирован: 2013.04.08, 10:35
Откуда: Нижний Новгород

Re: Не работает связка ajax и renderpartial

Сообщение Странник »

Решил. Ошибка в вызове ajax формы. Забыл поставить 'update' => '#right'
Закрыто