sviluppo:multiselectmultipage
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
| Entrambe le parti precedenti la revisioneRevisione precedenteProssima revisione | Revisione precedente | ||
| sviluppo:multiselectmultipage [2013/02/20 17:34] – a.mucci | sviluppo:multiselectmultipage [2024/10/15 09:45] (versione attuale) – modifica esterna 127.0.0.1 | ||
|---|---|---|---|
| Linea 6: | Linea 6: | ||
| === MultiSelezionePost === | === MultiSelezionePost === | ||
| Con questa funzione potremo: | Con questa funzione potremo: | ||
| - | * tenere memorizzate | + | * memorizzare |
| * visualizzare in ogni pagina le righe già selezionate | * visualizzare in ogni pagina le righe già selezionate | ||
| * deselezionare le righe | * deselezionare le righe | ||
| \\ | \\ | ||
| - | Per poter utilizzare questa funzione avremo bisogno prima di tutto di una **variabile in Session** che conterrà tutte le righe precedentemente selezionate e il nome della griglia: | + | Per poter utilizzare questa funzione avremo bisogno prima di tutto di una **variabile in Session** che conterrà tutte le righe precedentemente selezionate, e il nome della griglia:\\ |
| + | \\ | ||
| Le dichiariamo: | Le dichiariamo: | ||
| < | < | ||
| Linea 57: | Linea 58: | ||
| \\ | \\ | ||
| Notiamo:\\ | Notiamo:\\ | ||
| + | * L' | ||
| * L' | * L' | ||
| * Il richiamo della funzione **MultiSelezionePost** con l' | * Il richiamo della funzione **MultiSelezionePost** con l' | ||
| Linea 62: | Linea 64: | ||
| * $this-> | * $this-> | ||
| * $sql: la stessa sql che utilizziamo per creare la griglia, in modo che la funzione che stiamo chiamando si scorra gli stessi campi e possa controllare i ROWID selezionati.\\ In questo caso noi utilizziamo un SELECT * FROM DITTELIC | * $sql: la stessa sql che utilizziamo per creare la griglia, in modo che la funzione che stiamo chiamando si scorra gli stessi campi e possa controllare i ROWID selezionati.\\ In questo caso noi utilizziamo un SELECT * FROM DITTELIC | ||
| + | * La funzione è stata inserita direttamente nella Lib. | ||
| **La funzione: | **La funzione: | ||
| Linea 67: | Linea 70: | ||
| < | < | ||
| public function MultiSelezionePost($SelezioneTab, | public function MultiSelezionePost($SelezioneTab, | ||
| + | $Riga=' | ||
| // PRIMA PARTE | // PRIMA PARTE | ||
| foreach ($SelezioneTab as $key => $Result_rec) { | foreach ($SelezioneTab as $key => $Result_rec) { | ||
| - | if($_POST[' | + | if($_POST[$Riga.$key] == ' |
| - | | + | |
| | | ||
| }else{ | }else{ | ||
| - | | + | |
| - | $_POST[' | + | $_POST[$Riga.$key]=' |
| } | } | ||
| } | } | ||
| } | } | ||
| // SECONDA PARTE | // SECONDA PARTE | ||
| - | | + | $Griglia_tab=ItaDB:: |
| foreach ($Griglia_tab as $Griglia_rec) { | foreach ($Griglia_tab as $Griglia_rec) { | ||
| - | if( $_POST[' | + | if( $_POST[$Riga.$Griglia_rec[' |
| $NuovaSelezione[$Griglia_rec[' | $NuovaSelezione[$Griglia_rec[' | ||
| - | Out:: | + | Out:: |
| }else { | }else { | ||
| if($SelezioneTab[$Griglia_rec[' | if($SelezioneTab[$Griglia_rec[' | ||
| Linea 90: | Linea 94: | ||
| } | } | ||
| } | } | ||
| - | + | ||
| | | ||
| } | } | ||
| </ | </ | ||
| - | **La prima parte** della funzione invia in **POST** le **row** selezionate nella pagina precedente (ovviamente se è la prima pagina non verrà eseguita) | + | **La prima parte** della funzione invia in **POST** |
| Notiamo: | Notiamo: | ||
| Linea 101: | Linea 105: | ||
| * **$Griglia: | * **$Griglia: | ||
| * **$sql:** SELECT * FROM DITTELIC | * **$sql:** SELECT * FROM DITTELIC | ||
| - | * **jqg_' | + | * **jqg_' |
| - | Nella seconda parte della funzione: | + | \\ |
| - | * viene creato l' | + | **Nella seconda parte** della funzione: |
| - | * Se ci sono vengono aggiunte all' | + | * viene creato l' |
| - | * Se non ci sono controlla se tra le righe nella pagina sono presenti righe precedentemente selezionate (Quindi presenti in **$SelezioneTab**) e le assegna a 0. In questo modo non risulteranno più selezionate. | + | * Se ci sono vengono aggiunte all' |
| + | * Se non ci sono, controlla se tra le righe nella pagina sono presenti righe precedentemente selezionate (Quindi presenti in **$SelezioneTab**) e le assegna a 0. In questo modo non risulteranno più selezionate. | ||
| * In fine avremo il return di **$NuovaSelezione** che rappresenta l' | * In fine avremo il return di **$NuovaSelezione** che rappresenta l' | ||
| Nel nostro programma avremo quindi la variabile in session $this-> | Nel nostro programma avremo quindi la variabile in session $this-> | ||
| + | \\ | ||
| + | \\ | ||
| + | **Nota**\\ | ||
| + | \\ | ||
| + | Con questa funzione è possibile selezionare oltre 2000 righe, ma nel caso in cui ce ne siano di più è opportuno inserire un bottone che permetta di stamparle direttamente tutte e inserire dei filtri nella ricerca( in modo da // | ||
| + | \\ | ||
| + | Per l' | ||
| + | < | ||
| + | | ||
| + | $SelezioneGrid[]=$key; | ||
| + | | ||
| + | |||
| + | $sql=" SELECT * | ||
| + | FROM DITTELIC | ||
| + | WHERE 1"; | ||
| + | $sql.=" | ||
| + | for ($index = 0; $index < count($SelezioneGrid); | ||
| + | | ||
| + | } | ||
| + | $sql=substr($sql, | ||
| + | $sql.=" | ||
| + | </ | ||
| + | **$SelezioneTab** è l' | ||
| + | \\ | ||
| + | Ovviamente, se vogliamo passare una **$SelezioneTab** aggiornata, prima del ciclo, dovremo richiamare nuovamente la funzione **MultiSelectPost**, | ||
| + | < | ||
| + | ... | ||
| + | $sql = $this-> | ||
| + | $this-> | ||
| + | ... | ||
| + | </ | ||
| + | \\ | ||
| + | Con il ciclo, rielaboriamo l' | ||
| + | Dopo di che, in questo esempio, all' | ||
| + | Avremo un risultato del genere:\\ | ||
| + | \\ | ||
| + | SELECT * FROM DITTELIC WHERE 1 AND( ROWID = 2 OR ROWID = 3 OR ROWID = 35 ) | ||
| + | \\ | ||
| + | {{counter}} visualizzazioni. | ||
sviluppo/multiselectmultipage.1361381687.txt.gz · Ultima modifica: (modifica esterna)
