Problema Con CJuiDialiag

Salve ho seguito il tutorial cjuidialog-and-ajaxsubmitbutton e sembra andare tutto bene fino all’apertura del formDialog.

Una volta aperto nel momento in cui cerco di inserire per esempio un dato in una textField si pianta e l’unica opzione è chiudere il dialog…

Suggerimenti?

Ciao ti servirebbe come minimo uno strumento come firebug(se usi mozilla) o strumenti cmq che mostrino cosa succede dietro le quinte !

Se usi mozilla installati firebug e una volta cliccato sul CJuiDialog aprilo (firebug), se ci sono, ti mostrerà gli errori che il browser non può mostrare.

ciauz :unsure:

il problema è quello che ho usato sia firebugs che la consolle integrata in chrome non mi danno errori

posta un po’ di codice…

view/clienti/form


 

<?php echo $form->dropdownlist($clienti, 'provvigioni_id', $provvigioni, array('empty' => 'Nessuna Provvigione')); ?>

                  

                  <?php

                    echo CHtml::ajaxLink('Nuovo', $this->createUrl('provvigioni/addnew'), array(

                        'onclick' => '$("#jobDialog").dialog("open"); return false;',

                        'update' => '#jobDialog'

                            ), array('id' => 'showJobDialog'));

                  ?>

                  

  <div id="jobDialog"></div>




controlller/provvigioni




public function actionAddnew() {

      $model = new Provvigioni;

      // Ajax Validation enabled

      //$this->performAjaxValidation($model);

      // Flag to know if we will render the form or try to add 

      // new jon.

      $flag = true;

      if (isset($_POST['Provvigioni'])) {

        $flag = false;

        $model->attributes = $_POST['Provvigioni'];


        if ($model->save()) {

          //Return an <option> and select it

         echo CHtml::tag('option', array(

              'value' => $model->id,

              'selected' => true

                  ), CHtml::encode($model->descrizione), true);

        }

      }

      if ($flag) {

        Yii::app()->clientScript->scriptMap['jquery.js'] = false;

        Yii::app()->clientScript->scriptMap['jquery.min.js'] = false;

        $this->renderPartial('createDialog', array('model' => $model,), false, true);

      }

    }



view/provvigioni/_formDialog




<section class="grid_12">

  <div class="block-border">

    <?php

      $form = $this->beginWidget('CActiveForm', array(

          'id' => 'provvigioni-form',

          'enableAjaxValidation' => false,

              ));

    ?>


    <div class="block-content form">

      <h1>Aggiungi Provvigione</h1>


      <br/>

      <div class="columns">

        <?php echo $form->labelEx($provvigioni, 'descrizione'); ?>

        <?php echo $form->textField($provvigioni, 'descrizione', array('size' => 45, 'maxlength' => 45)); ?>

      </div>

      <div class="columns">

        <?php echo $form->labelEx($provvigioni, 'valore'); ?>

        <?php echo $form->textField($provvigioni, 'valore', array('size' => 3, 'maxlength' => 3)); ?>

      </div>


      <?php echo CHtml::ajaxSubmitButton('Crea', CHtml::normalizeUrl(array('provvigioni/addnew', 'render' => true)), array('success' => 'js: function(data) {

                        $("#Clienti_provvigioni_id").append(data);

                        $("#jobDialog").dialog("close");

                    }'), array('id' => 'closeJobDialog')); ?>

    </div>

    <?php $this->endWidget(); ?>

  </div>

</section>



view/provvigioni/createDialog




<?php


  $this->beginWidget('zii.widgets.jui.CJuiDialog', array(

      'id' => 'jobDialog',

      'options' => array(

          'autoOpen' => true,

          'modal' => 'true',

          'width' => 'auto',

          'height' => 'auto',

      ),

  ));

  echo $this->renderPartial('_formDialog', array('provvigioni' => $model));

?>

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



credo di aver risolto levando tra le opzioni del widget modal=>true anche se sinceramente non ho capito perchè faceva cosi?

scusate c’è qualcuno che mi può aiutare con questo problema del ‘modal’=>true, ho cercato ovunque nel codice ma sembra corretto

visto che hai utilizzato firebug , riesci almeno a vedere quante chiamate ajax fa nella sezione Net -> XHR?

e poi che significa si pianta?si blocca?

ho notato che il problema lo da anche se non faccio chiamate ajax.

si pianta nel senso che mi si apre il dialog ma se provo a cliccare su un textinput non mi fa inserire testo è come se il contenuto fosse congelato.

se invece imposto l’opzione '=>‘false’ funziona.

è molto probabile allora che ci sia un conflitto tra js. E’ davvero difficile capire dov’è il problema. Si dovrebbe anche analizzare l’output html…Non per scoraggiarti ma con quel wiki ho avuto abbastanza problemi anche io…poi ho trovato questo …semplice e chiaro :

http://www.yiiframework.com/wiki/145/cjuidialog-for-create-new-model/

è molto flessibile…è un wiki di zaccaria

si infatti con questo non mi da l’errore però è strano!!! grazie per il supporto buon fine settimana

Credo di aver trovato un "errore":

Ho controllato la guida che avete linkato ed ho visto questo:




<?php

$this->beginWidget('zii.widgets.jui.CJuiDialog', array( // the dialog

    'id'=>'dialogClassroom',

    'options'=>array(

        'title'=>'Create classroom',

        'autoOpen'=>false,

        'modal'=>true,

        'width'=>550,

        'height'=>470,

    ),

));?>

<div class="divForForm"></div>

 

<?php $this->endWidget();?>



Controlla bene il codice che ci hai postato: forse il problema si trova nel codice che hai scritto:




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



al posto di




<?php $this->endWidget();?>



In pratica hai usate endWidget, passando un id. Ma in questo modo non chiudi il widget precedente:

http://www.yiiframework.com/doc/api/1.1/CBaseController/#endWidget-detail

senso orario io stavo seguendo la guida che ho postato io nel primo post.

credo sia proprio qualche conflitto in javascript. pero non capisco dove. usando il tutorial che mi ha consigliato hyde82 quello di zaccaria per intenderci il problema non sorge però non è quello che fa al caso mio purtroppo

Ho risolto impostando il paramentro ‘zIndex’. è stata dura ma ce l’ho fatta grazie a tutti per il supporto :D