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:30] – 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.1361381432.txt.gz · Ultima modifica: 2018/03/19 10:45 (modifica esterna)