Utilizzo Gridview e colonna check bock

11 views
Skip to first unread message

Riccardo Regini

unread,
Mar 18, 2018, 2:18:02 PM3/18/18
to yii-it
Salve a tutti, 

Sto da poco utilizzando yii2, ho il seguente problema.
Sto applicando il seguente approccio:
1) una index contiene la gridview dove sono visualizzate le pratiche
2) vorrei selezionare le pratiche da cambiare alcune informazioni: data, stato ecc.

Qualche suggerimento grazie ?
la Gridview con la checkbox riesco a crearla ma non riesco a gestire le righe selezionate dal controller per poter aggiornare dei dati nel db.

Grazie 

Fabrizio Caldarelli

unread,
Mar 18, 2018, 2:29:17 PM3/18/18
to yii...@googlegroups.com, Riccardo Regini
Ciao Riccardo,
la strada che hai preso è quella giusta. Utilizza i checkbox
per identificare le righe selezionate.

Ciascuna riga ha un attributo data-key che contiene l'id del model
rappresentato.

A questo punto, immagino, quando l'utente premerà un pulsante aggiorna
andrai a ripescare tutti i checkbox selezionati e di conseguenza saprai i model da aggiornare.


<?php
$this->registerJs( <<< EOT_JS


    $('#btnAggiorna').on( 'click', function(ev) {

	var idDaAggiornare = [];
	$('.checkboxes:checked').each(function() {
              idDaAggiornare.push( $(this).parents('tr').attr('data-key') );
	});
        
        // Dentro la variabile idDaAggiornare c'è il vettore di id da aggiornare che posso inviare tramite $.get o $.post

    });

EOT_JS
);

Diciamo che il problema è più lato JS che non PHP.

Il 18/03/18 19:18, Riccardo Regini ha scritto:
--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "yii-it" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a yii-it+un...@googlegroups.com.
Per postare in questo gruppo, invia un'email a yii...@googlegroups.com.
Visita questo gruppo all'indirizzo https://groups.google.com/group/yii-it.
Per altre opzioni visita https://groups.google.com/d/optout.

Riccardo Regini

unread,
Mar 18, 2018, 2:43:21 PM3/18/18
to yii-it
Grazie mille,

Ho visto che posso ricevere le rige selezionate mediante questa semplice istruzione
var keys=$("#w1").yiiGridView("getSelectedRows");

Ora il nio problema viene nel javacsript per richiamare una funzione controller/metodo e righe selezionate

Grazie

Fabrizio Caldarelli

unread,
Mar 18, 2018, 3:07:21 PM3/18/18
to yii...@googlegroups.com, Riccardo Regini
Perfetto.

Una volta selezionate le righe, mettendo che l'url di destinazione sia mio-controller/mia-action
e che il parametro che riceverà la lista degli id si chiami idList:

<?php

$urlDestinazione = \yii\helpers\Url::to(['mio-controller/mia-action']);
$this->registerJs( <<< EOT_JS

    function aggiornaRighe( idRigheDaAggiornare ) 
    {
           $.post(
               '{urlDestinazione}',
               { idList: idRigheDaAggiornare },
               function(data) {
                    console.log('output della chiamata mio-controller/mia-action');
                    console.log(data);
               }
          );
    }

EOT_JS
);


Il 18/03/18 19:43, Riccardo Regini ha scritto:

Andrea Epifani

unread,
Mar 18, 2018, 3:26:16 PM3/18/18
to yii...@googlegroups.com, Riccardo Regini
Ti consiglio di usare la gridview kartik, che ha dei metodi ad hoc per gestire meno "manualmente" questo processo

Riccardo Regini

unread,
Mar 18, 2018, 3:36:29 PM3/18/18
to yii-it
Grazie, Sto utilizzando la grid in questione ma in realta il mio problema è quello di aprire una finestra modale mediante la chiamata al controller/azione con la possibilita di far selezionare all'utente degli attributi in delle dropdown i qualli aggiorneranno le righe precedente selezionate nella grid.

Andrea Epifani

unread,
Mar 18, 2018, 3:48:01 PM3/18/18
to yii...@googlegroups.com
Ok allora credo che tu debba gestire la cosa a mano

Il dom 18 mar 2018, 20:36 Riccardo Regini <riccard...@gmail.com> ha scritto:
Grazie, Sto utilizzando la grid in questione ma in realta il mio problema è quello di aprire una finestra modale mediante la chiamata al controller/azione con la possibilita di far selezionare all'utente degli attributi in delle dropdown i qualli aggiorneranno le righe precedente selezionate nella grid.

--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "yii-it" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a yii-it+un...@googlegroups.com.
Per postare messaggi in questo gruppo, invia un'email a yii...@googlegroups.com.

Visita questo gruppo all'indirizzo https://groups.google.com/group/yii-it.
Per ulteriori opzioni, visita https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages