Ciao sensorario ti ringrazio nuovamente per il tuo esempio perchè mi ha aiutato.
Ora voglio usarlo in un form dove ho un array di records che ricevo da una query.
E’ una preparazione di stampa della fattura. Gli articoli li recupero dalla query.
Ora voglio inserire il pulsante "+" per far si che sotto ad ogni articolo mi appaia una riga (sotto forma di $form->…etc) per poter aggiungere informazioni prima di processare il tutto e passare i dati alla stampa.
Ho applicato il tuo procedimento ma ogni qualvolta che clicco sul pulsante “+” la parte dove aggiungere le info all’ articolo mi si apre sempre e solo sotto il primo record.
Esempio di cio che vorrei:
1 record +(pulsante che al click apre il campo aggiuntivo)
1-----------------------campo aggintivo
2 record +(pulsante che al click apre il campo aggiuntivo)
2-----------------------campo aggintivo
3 record +(pulsante che al click apre il campo aggiuntivo)
3-----------------------campo aggintivo
Invece Ottengo questo:
1 record +(pulsante che al click apre il campo aggiuntivo)
1-----------------------campo aggintivo
3-----------------------campo aggintivo
2-----------------------campo aggintivo
2 record +(pulsante che al click apre il campo aggiuntivo)
3 record +(pulsante che al click apre il campo aggiuntivo)
Quindi ad ogni click mi apre il campo aggiuntivo sempre sotto il primo record e non riesco a venirne fuori.
Potresti darmi un’ altra “spinta” sempre riferendoti al codice sopra indicato da te? così cado nel burrone .
Ovviamente sempre che questo sia possibile farlo in questa maniera.
Si accettano anche opinioni di terze parte
Allego 2 file in cui nel primo si vede l’ attuale vista con il pulsante"+" sotto ogni record.
Nel secondo allegato si vede cosa succede al click sul pulsante "+"…funziona solo il primo pulsante e gli altri non fanno nulla se ci clicco sopra, e come accennato prima ad ogni click si aggiunge un campo aggiuntivo sotto al primo record.
Non so se sia possibile fare un cliclo for(…){} "ciclando" i pulsanti…ma non so come dovrei impostarlo visto che il form dei records è dato da una query e faccio già un foreach delle tabelle con i record nella vista.
Vabbè se sto scrivendo caxxate sparate pure
Ecco il mio codice interessato del problema…in caso serva:
....................
....................
<?php
////////RECUPERO TUTTI GLI ID PASSATI TRAMITE GET
///////RICERCO I PRODOTTI PASSATE PER LA FATTURA E RECUPERO I LORO DATI
$ricerca = Missiva::model()->findAllByAttributes(array('missiva_id'=>$_GET['id_miss']));
$conta = count($ricerca);
if($conta > 0){
$prodotto = array();
foreach($ricerca as $risultati)
array_push($prodotto,$risultati->missiva_id);
}
////RECUPERO I DATI DALLA TABELLA PER STAMPARE LA FATTURA
$ricerca2 =Missiva::model()->findAllByAttributes(array("missiva_id"=>$prodotto));
foreach($ricerca2 as $dati){
$imponibile = $dati->totale/1.22;
?>
<tr>
<td class="tabella_info_campo_descrizione" style="text-align:left; font-size:12px;">
<div id="prodotto">
<?php
if($dati->filiale_destinazioneid <1){
echo $form->textField($fattura,'prodotto',array('style'=>'width: auto', 'value'=>$dati->prodotto, 'readonly'=>true, 'style'=>'font-size:12px'))
.'<br /><b>Verso</b> '.$dati->cliente_cap.', '.$dati->cliente_comune.' ('.$dati->cliente_provincia.')'.' - <b>Consegna</b>: '.$dati->vettore;
}else{
echo $form->textField($fattura,'prodotto',array('style'=>'width: auto', 'value'=>$dati->prodotto, 'readonly'=>true, 'style'=>'font-size:12px'))
.'<br /><b>Verso</b> '.$dati->cliente_cap.', '.$dati->cliente_comune.' ('.$dati->cliente_provincia.')'.' - <b>Consegna</b>: '.$dati->filiale_destinazione;
}?>
<?php echo $form->error($fattura,'prodotto'); ?>
</div>
<div id="prodotto2" >
<?php echo CHtml::button('+', array('id'=>'il_bottone'));?>
</div>
<div id="spazio_per_i_pacchi"></div>
</td>
<td class="tabella_info_campo_descrizione" style="text-align:left;">
<?php echo $form->textField($fattura,'peso',array('class'=>'span1','maxlength'=>50, 'value'=>$dati->peso, 'readonly'=>true, 'style'=>'font-size:12px')); ?>
<?php echo $form->error($fattura,'peso'); ?>
</td>
<td class="tabella_info_campo_descrizione" style="text-align:left;">
<?php
$menu_data = array('22%'=>'22%', 'ART.E15'=>'ART.E15');
echo $form->dropDownList($fattura, 'iva', $menu_data, array('style'=>'width: auto; font-size:12px'));
?>
<?php echo $form->error($fattura,'iva'); ?>
</td>
<td class="table_info_data">
<?php echo $form->textField($fattura,'totale',array('class'=>'span1','maxlength'=>50, 'value'=>number_format($imponibile,2,'.',''), 'style'=>'width:auto', 'style'=>'font-size:12px')); ?>
<?php echo $form->error($fattura,'totale'); ?>
</td>
</tr>
<?php }?>
<tr class="tabella_info_footer">
<td colspan="5" class="tabella_chiusura_form">
<?php echo CHtml::submitButton('Stampa' ,array('class'=>'btn btn-primary btn-small')); ?>
<?php $this->endWidget(); ?>
</td>
</tr>
</tbody>
</table>
</div>
<script type="text/javascript">
var pacchi_aggiunti = 0;
var aggiungi_bottone_handler = function() {
pacchi_aggiunti++;
$('<div id="pacco_numero_' + pacchi_aggiunti + '"><?php
if($dati->filiale_destinazioneid <1){
echo $form->textField($fattura,'prodotto',array('style'=>'width: auto', 'style'=>'font-size:12px'));
}else{
echo $form->textField($fattura,'prodotto',array('style'=>'width: auto', 'style'=>'font-size:12px'));
}?></div>')
.appendTo($('#spazio_per_i_pacchi'));
}
$(function(){
$('#il_bottone').on('click', aggiungi_bottone_handler);
});
</script>
Un Saluto