Yii Framework Forum: Come gestire CJuiDialog dal controller ? - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Come gestire CJuiDialog dal controller ? Controllare i dialog box dal controller Rate Topic: -----

#1 User is offline   robysax 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 24
  • Joined: 05-November 10

Posted 11 January 2011 - 03:41 AM

Ho realizzato un'applicazione per la gestione dei documenti con Yii e MySQL utilizzando un database con l'integrità referenziale.
Vorrei gestire gli errori che compaiono quando si tenta di cancellare un record dalla tabella parent relazionato con quella child tramite popup (CJuiDialog).
Ho incorporato CJuiDialog nella vista dove deve comparire l'errore ma non so come far apparire il popup chiamandolo dal controller.
Nel codice del controller, intercetto l'exception del database per visualizzare il popup in caso di errore.
Ho provato a seguire l'esempio in http://www.yiiframew...1.1/CJuiDialog/ e utilizzando il link il popup viene aperto ma come posso fare la stessa cosa dal controller ?

view.php

<?php
$this->breadcrumbs=array(
'Clients'=>array('index'),
$model->name,
);

$this->menu=array(
array('label'=>'List Client', 'url'=>array('index')),
array('label'=>'Create Client', 'url'=>array('create')),
array('label'=>'Update Client', 'url'=>array('update', 'id'=>$model->idclient)),
array('label'=>'Delete Client', 'url'=>'#', 'linkOptions'=>array('submit'=>array('delete','id'=>$model->idclient),'confirm'=>'Are you sure you want to delete this item?')),
array('label'=>'Manage Client', 'url'=>array('admin')),
);
?>

<h1>View Client <?php echo $model->name; ?></h1>

<?php $this->widget('zii.widgets.CDetailView', array(
'data'=>$model,
'attributes'=>array(
//'idclient',
'name',
'vat_no',
'reference',
'address',
'zipcode',
'city',
'country',
'phone',
'fax',
//'mail',
array(
'name' => 'mail',
'type' => 'raw',
'value' => CHtml::link(CHtml::encode($model->mail), "mailto:".CHtml::encode($model->mail)),
),
),
));


$this->beginWidget('zii.widgets.jui.CJuiDialog', array(
'id'=>'mydialog',
// additional javascript options for the dialog plugin
'options'=>array(
'title'=>'Dialog box 1',
'autoOpen'=>false,
'modal'=>true,
),
));

echo 'dialog content here';

$this->endWidget('zii.widgets.jui.CJuiDialog');



// the link that may open the dialog
echo CHtml::link('open dialog', '#', array(
'onclick'=>'$("#mydialog").dialog("open"); return false;',
));


?>



clientcontroller.php

public function actionDelete($id)
{

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

try {
$this->loadModel($id)->delete();
} catch (CDbException $e) {
"Codice per chiamare il popup";
}
if(!isset($_GET['ajax']))
$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));
}
else
throw new CHttpException(400,'Invalid request. Please do not repeat this request again.');

}


Ringrazio anticipatamente per le info.
0

#2 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,987
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 11 January 2011 - 11:20 AM

Fossi scriverei questo codice nel controller.

$(document).ready(function(){
   $('#mydialog').dialog();
});

0

#3 User is offline   robysax 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 24
  • Joined: 05-November 10

Posted 12 January 2011 - 03:27 AM

View Postsensorario, on 11 January 2011 - 11:20 AM, said:

Fossi scriverei questo codice nel controller.

$(document).ready(function(){
   $('#mydialog').dialog();
});



Ho aggiunto il codice che mi hai scritto (vedi sotto) ma non funziona ancora :

public function actionDelete($id)
{

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


try {
// we only allow deletion via POST request
$this->loadModel($id)->delete();
} catch (CDbException $e) {
$(document).ready(function(){
$('#mydialog').dialog();
});
}


Nel file di log degli errori (error_log) compare :

[error] [client 10.4.1.5] PHP Parse error: syntax error, unexpected '(', expecting T_VARIABLE or '$' in /var/www/html/projectmgmt/protected/controllers/ClientController.php on line 121
0

#4 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,987
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 13 January 2011 - 04:01 AM

Il mio era codice jquery, non php =)
0

#5 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,987
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 13 January 2011 - 04:02 AM

Scusami: in sostansa devi aggiungere quello script nel controller dopo aver incluso anche jquery. Purtroppo ho sempre fatto a mano queste cose e non mi è venuto di scrivere il codice per Yii.
0

#6 User is offline   robysax 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 24
  • Joined: 05-November 10

Posted 15 January 2011 - 06:30 AM

Ti ringrazio molto per la risposta, purtroppo non ho mai provato ad inserire codice Jquery in PHP.
Potresti farmi un esempio con il blocco di codice che ti ho scritto ?
Potrebbe essere interessante anche per gli altri amici del forum.

Ciao e grazie in anticipo
0

#7 User is offline   rebus 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 31
  • Joined: 07-December 09
  • Location:Ancona

Posted 15 January 2011 - 07:01 AM

Ciao RobySax.

Dai un'occhiata forse ti puo' aiutare.

http://www.yiiframework.com/wiki/72/
1

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users