il problema si fa più intrigante vorrei generare questo che ha id Prodotto_nome_prodotto_select ovvero:
<?php echo $form->labelEx($model_prodotto,'id_prodotto'); ?>
<div id="sel_prodotto">
<?php $form->widget('ext.combobox.EJuiComboBox', array(
'model' => $model_prodotto,
'attribute' => 'nome_prodotto',
// data to populate the select. Must be an array.
'data' => ProdottoController::lista_pro_combobox(),
// 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 false, field value must be present in the select.
// Defaults to true.
'allowText' => TRUE,
),
// Options passed to the text input
'htmlOptions' => array('size' => 10),
));
?>
<?php echo $form->error($model,'nome_prodotto'); ?>
</div>
Mi crea la select ma no mi attiva il widget ovvero non mi fa scorrere gli elementi al suo interno… Il problema sta nel tag name , ho provato a cambiarlo con $(this).attr(“name”,“prova”);’ ma non cambia
1 aggiungi il div con il widget(#sel_prodotto) al div prodotto.
e questo mi pare lo faccia
2 setti al bottone (this) un attributo di nome ‘name’ con valore ‘prova’.
Quindi non capisco: Cosa non viene settato di precisione?
E perché hai bisogno di settare l’attributo name del button?
Se per esempio dovessi aggiungere il prodotto alla lista, dovresti dire: questo botton ha un id=idprodotto, se lo clicco aggiungo id_prodotto alla lista dei prodotti ordinati.
il problema sta nel fatto che voglio cambiare id (mi ero espresso male prima) solo al secondo widget altrimenti non funziona vanno in conflitto … il this non era al bottone ma pensavo facesse riferimento all’ultimo elemento creato sorry
Pett: tu hai un div con id "selprodotto" al cui interno hai un widget da inserire, con attributo disabilitato per evitare che ti venga passato dal form. Lo metti e con jquery te lo tieni nascosto in fondo alla pagina.
Quando clicchi sul botton cloni il div col widget,lo appendi, gli cambi id e lo rendi visibile e lo abiliti (rimuovendo l’attributo disabled
In questo modo tu hai sempre in fondo un div pronto da inserire in fondo.
nella tua view includi il div con il widget a fondo pagina, ha due particolarità:
a) ha un id fissato da te (ae id_da_cambiare)
è disabilitato
<div id="sel_prodotto">
<?php $form->widget('ext.combobox.EJuiComboBox', array(
'model' => $model_prodotto,
'attribute' => 'nome_prodotto',
// data to populate the select. Must be an array.
'data' => ProdottoController::lista_pro_combobox(),
// 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 false, field value must be present in the select.
// Defaults to true.
'allowText' => TRUE,
),
// Options passed to the text input
'htmlOptions' => array(
'size' => 10
,'id'=> 'id_da_cambiare'
,'disabled'=>'disabled'
),
));
?>
Setti intanto uno script di jquery in cui imposti a invisibile di default il div inserito, e fissi un contatore.
io ho scritto il codice di fretta, direttamente qui, quindi va controllato: ad esempio il problema che mi riporti è che la prima volta ho scritto nuovwidget, senza o