Renderizar texto vía AJAX

Hola, gente!

Resulta que estoy creando una aplicación con YII 1.1.2, usando el CGridView del crud.

El tema es el botoncito de DELETE vía AJAX.

Lo que sucede es que yo en el controlador necesito chequear si ese registro se puede eliminar o nó (depende de que tenga registros relacionados).

La comprobación la hace bien, no borra nada si no se puede. El tema es que quiero renderizar un texto avisando que no se puede borrar, o de última redireccionar la página, lo que sea…

No lo pude lograr…simplemente no hace nada. Muestra el preloader pero nada más…

Y viendo en el FIREBUG veo que efectivamente el texto se recibe.

Alguien sabe cómo hacer ésto??? Me estoy bloqueando mal…

Graciaaaas!

Si entendi bien lo que necesitas en enviar un aviso de que si o no se puede eliminar el registro… no se me ocurre nada mas facil por el momento… y se que esto puede parece la solucion dificil… pero igual es una idea para el repertorio…

Veamos: lo normal que hace el boton de eliminar registro es el codigo siguiente… y que tal si envias excepciones ??

mm… quizas en tu controller haces lo siguiente para probar




public function actionDelete()

{

	if(Yii::app()->request->isPostRequest)

	{

		//Prueba de Exception

		throw new CHttpException(304,'Not resolved');

	}

	else

		throw new CHttpException(400,'Invalid request. Please do not repeat this request again.');

}



y en la vista escribes este codigo (en la columna de los botones, sobre la definicion del gridview)




array(

	'class'=>'CButtonColumn',

	'template' => '{eliminar}',

	'buttons' => array(

		'eliminar' => array(

			'label'=> 'Eliminar',

			'url' =>'Yii::app()->controller->createUrl("model/delete",array("id"=>$data->id,))',

			'click'=>"function() {

				if(!confirm('Eliminar registro?')) return false;

				$.fn.yiiGridView.update('yw0', {

					type:'POST',

					url:$(this).attr('href'),

					success:function(text) {

						$.fn.yiiGridView.update('yw0');

                                                alert(text);

					}

				});

				return false;

			}"

		)

	),

),



Gracias, master!

El código (con algunos ajustes para que encaje en mi app) funcionó como se espera.

Calculo que con unos ajustes más debería poder adaptarse a lo que necesito.

Graciaaaas! :D

Genial, que buenovque te haya servido… aunque sigo pensando que deberia haber otra manera con menos codigo para resolver este problema… Quizas mas adelante a alguien se le ocurra algo mejor…

Saludos