Yii Framework Forum: [Risolto]Problema Nel Recuperare Il Value Di Widget Nel Model - Yii Framework Forum

Jump to content

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

[Risolto]Problema Nel Recuperare Il Value Di Widget Nel Model Rate Topic: -----

#1 User is offline   michele 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 221
  • Joined: 02-August 12

Posted 07 October 2012 - 03:27 AM

Salve ragazzi altro problema con questo form maledetto... ho utilizzato questo widget per la combobox ovvero: EJuiComboBox

Il problema sta nel fatto che quando vado a salvare non recupera il valore selezionato risulta vuoto, la stessa cosa vale per il widget del calendario ovvero: gcalendar.GCalendar
0

#2 User is offline   sensorario 

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

Posted 07 October 2012 - 03:34 AM

Sicuramente se l'input è ha un attributo name "arriva" all'altra pagina tramite get o post. Detto questo, ci sono dei widget come EJuiComboBox che possono essere una sandbox che ci nascondono quello che c'è sotto. Ma non dobbiamo spaventarci pensando che un form sia maledetto =). Dando per scontato che esista questo campo di input (generato dall'EJuiComboBox), probabilmente non viene recuperato il valore perché viene letto male. Prova ad eseguire questo codice nella pagina che riceve i dati.

var_dump($_POST);die;


Poi postacelo qui. In questo modo potremo accertarci che tutto viene spedito correttamente alla pagina. Se qui non trovi il dato del EJuiComboBox allora proveremo ad andare più a fondo per verificare l'HTML generato dal widget.
0

#3 User is offline   michele 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 221
  • Joined: 02-August 12

Posted 07 October 2012 - 03:58 AM

Grazie mille sensorio...

Allore l'array che stampa è questo
array (size=5)
  'N_pratica' => string '008' (length=3)
  'anno' => string '2012' (length=4)
  'del' => string '07-10-2012' (length=10)
  'collocazione' => string 'AQ' (length=2)
  'Firmana' => string 'wweqeqwe' (length=8)


ed il form è questo:
<div class="row">
		<?php echo $form->labelEx($model,'N_Pratica'); ?>
		<?php echo $form->textField($model,'N_pratica',array('size'=>3,'maxlength'=>3,'value'=>$this->creaNPratica())); ?>
		<?php echo $form->error($model,'N_pratica'); ?>
	</div>

	<div class="row">
		<?php echo $form->labelEx($model,'anno'); ?>
		<?php echo $form->textField($model,'anno',array('value'=>date('Y',time()),'onkeyup'=>'
                                                                if(jQuery(this).val().length==4){                                                                    
                                                                jQuery.ajax({
                                                                             type: "POST",
                                                                             url:"Calcolo_collocazione_ajax",
                                                                             data:{data:jQuery(this).val()}                        
                                                                           }).success(function( data ) {jQuery("#PrefixarchivioPratiche_collocazione").val( data ); })
                                                                }else{
                                                                         jQuery("#PrefixarchivioPratiche_collocazione").val("");
                                                                }')); ?>
		<?php echo $form->error($model,'anno'); ?>
         
	</div>

	<div class="row">
		<?php echo $form->labelEx($model,'del'); ?>
		<?php echo $form->textField($model,'del',array('id'=>'effective_from','readonly'=>'readonly','value'=>date('d-m-Y',time()))); ?>
                        <?php 
                                   $this->widget('ext.gcalendar.GCalendar',array(
                                   'model' =>$model,
                                   'theme' => '',
                                   'inputField'=>'effective_from', 
                                   'daFormat'=>'dd-mm-yyyy',
                                   'languageCode' => 'en',    
                               )
                     ); 
                ?>    
		<?php echo $form->error($model,'del'); ?>
	</div>
        
        <div class="row">
		<?php echo $form->labelEx($model,'collocazione'); ?>
		<?php echo $form->textField($model,'collocazione',array('size'=>50,'maxlength'=>50,'value'=>$this->calcolo_collocazione_php(date('Y',time())))); ?>
		<?php echo $form->error($model,'collocazione'); ?>
	</div>

	<div class="row">
		<?php echo $form->labelEx($model,'Firmana'); ?>
		<?php echo $form->textField($model,'Firmana',array('size'=>50,'maxlength'=>50)); ?>
		<?php echo $form->error($model,'Firmana'); ?>
	</div>

	<div class="row">
		<?php echo $form->labelEx($model,'nome'); ?>		
               <?php $form->widget('ext.combobox.EJuiComboBox', array(
                     'model' => $model_seu,
                     'attribute' => 'nome',
                     // data to populate the select. Must be an array.
                     'data' => PrefixfirmanaSeuController::Seu(),
                     // options passed to plugin
                     'options' => array(
                        // JS code to execute on 'select' event, the selected item is
                        // available through the 'item' variable.
                        'onSelect' => '',
                        // JS code to be executed on 'change' event, the input is available
                        // through the '$(this)' variable.
                        'onChange' => 'if(confirm("Aggiungere elemento alla lista?")){
                                          jQuery.ajax({
                                                       type: "GET",
                                                       url:"'.Yii::app()->baseUrl.'/PrefixfirmanaSeu/create",
                                                       data:{nome:jQuery(this).val()}                        
                                         }).success(function( data ) {alert(data);})
                                       }',
                        // If false, field value must be present in the select.
                        // Defaults to true.
                        //'allowText' => TRUE,
                         'allowText' => FALSE,
                    ),
                    // Options passed to the text input
                    //'htmlOptions' => array('size' => 10),
                ));
               ?>
            <?php echo $form->error($model,'nome'); ?>
	</div>


Il problema della data sarà sicuramente un problema di tipo di ritorno perchè il tipo di dato del db è un datetime, voi che ne dite?
Ma resta ancora il problema del ritorno del valore del campo nome
0

#4 User is offline   zaccaria 

  • Elite Member
  • PipPipPipPipPip
  • Yii
  • Group: Members
  • Posts: 2,232
  • Joined: 04-October 09
  • Location:Moscow

Posted 08 October 2012 - 02:00 AM

Perche' usi un altro model per raccogliere il nome? Dovresti usare lo stesso
0

#5 User is offline   michele 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 221
  • Joined: 02-August 12

Posted 08 October 2012 - 04:57 AM

a me serve quello, purtroppo il mio che sto usando e di tipo myisam(non per causa mia)
0

#6 User is offline   zaccaria 

  • Elite Member
  • PipPipPipPipPip
  • Yii
  • Group: Members
  • Posts: 2,232
  • Joined: 04-October 09
  • Location:Moscow

Posted 08 October 2012 - 05:40 AM

Allora anche per il model SEU devi assegnare gli input ($model_seu->attribute=$_POST..), validare e salvare.
0

#7 User is offline   michele 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 221
  • Joined: 02-August 12

Posted 08 October 2012 - 05:56 AM

il problema e che nel post non passa il valore Seu... manca
0

#8 User is offline   zaccaria 

  • Elite Member
  • PipPipPipPipPip
  • Yii
  • Group: Members
  • Posts: 2,232
  • Joined: 04-October 09
  • Location:Moscow

Posted 08 October 2012 - 06:06 AM

Se c'e' la textbox ci deve essere anche il valore, controlla il post e se il widget crea un hiddenField.

Sei sicuro che non ti sei dimenticato una textbox in piu' che ti sovrascrive il valore scelto dal widget?
0

#9 User is offline   michele 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 221
  • Joined: 02-August 12

Posted 09 October 2012 - 10:41 AM

niente sono stato ad impazzire fino ad ora ma niente :angry: :angry: :angry: :angry: :angry:

non crea niente
0

#10 User is offline   michele 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 221
  • Joined: 02-August 12

Posted 09 October 2012 - 10:57 AM

Quasi risolto il mistero allora ho trovato la variabili incriminate e facendo il var dump ritona string(16) il problema passa alla validazione ovvero al validator risulta vuoto e quindi non mi fa andare avanti... Dai dai siamo sulla buona strada :D
0

#11 User is offline   zaccaria 

  • Elite Member
  • PipPipPipPipPip
  • Yii
  • Group: Members
  • Posts: 2,232
  • Joined: 04-October 09
  • Location:Moscow

Posted 10 October 2012 - 01:08 AM

Devi avere un validatore sul valore che prendi, se non hai nessuna regola da validare usa safe, significa che l'attributo e' sicuro e puo' essere assegnato.
0

#12 User is offline   michele 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 221
  • Joined: 02-August 12

Posted 12 October 2012 - 08:32 AM

risolto non applicavo nessun controllo nelle rules :D
0

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