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!
Page 1 of 1
Renderizar texto vía AJAX
#2
Posted 19 May 2010 - 05:40 PM
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
y en la vista escribes este codigo (en la columna de los botones, sobre la definicion del gridview)
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;
}"
)
),
),
Celestic Dev Team
Yii Open Source Project Manager
Yii Open Source Project Manager
#3
Posted 19 May 2010 - 10:35 PM
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!
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!
Company web site: pressEnter
Development using free software.
Development using free software.
#4
Posted 19 May 2010 - 11:01 PM
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
Saludos
Celestic Dev Team
Yii Open Source Project Manager
Yii Open Source Project Manager
Share this topic:
Page 1 of 1

Help












