E la prima volta che le affronto e mi trovo totalmente spiazzato.
Ecco un immagine:
Praticamente devo fare in modo che una volta che vengono spuntati i mex da cancellare e si preme su Elimina i selezionati me li cancelli.
Il problema e che non riesco a capire come devo impostare il ciclo.
Cioè come faccio a capire quante caselline ha spuntato?
Thanks
I valori delle caselline spuntante non vanno a finire dentro l'array $_POST[] ??
<input type="checkbox" name="cancella[]" value=<?=$record["id_mess"];?>
edit: Risolto, una cavolata,ecco la soluzione :D
$selezionati = $_POST["cancella"];
$checkati = implode(',',$_POST['cancella']);
Ultima modifica di Games; 25/05/2006 alle 10:17
Sei sulla strada giusta, solo che ti manca l'id di ogni checkbox.Originariamente Scritto da Games
Questo ti permette di avere n checkbox appartenenti ad un unico array cancella, ciascuno distinto dal proprio identificativo determinato dalla variabile $variabileCiclo (può essere un semplice counter incrementato ad ogni ciclo, oppure una stringa... insomma, come preferisci.Codice:<input type="checkbox" name="cancella[<?php echo $variabileCiclo ?>]" />
Quando fai submit, nell'array $_POST (o $_REQUEST) ti trovi questa variabile, che in realtÃ* è un array: $_REQUEST['cancella'].
A questo punto non devi far altro che gestire tutti gli elementi di quell'array, per esempio:
Codice:$aChkBoxes = $_REQUEST['cancella']; print_r($aChkBoxes); // Serve per controllare che ci sia tutto in debug, poi togli questa riga // Ciclo di scansione array checkbox // in $value viene messo il contenuto dell'elemento indicato dall'identificativo $key foreach ($aChkBoxes as $key => $value){ if ($value == 'on'){ // fai quello che devi fare sapendo che il checkbox cancella[$key] è stato selezionato } }
Stefano Giorgetti
always looking at the sky
Ho evitato il ciclo facendo cosìOriginariamente Scritto da djordj
![]()
Funziona tutto alla grande, adesso i messaggi cancellati si trovano nel cestinoCodice:$selezionati = $_POST["cancella"]; $checkati = implode(',',$_POST['cancella']); $query = "UPDATE mess_privati SET cestino = '1' where id_user='$id_user' AND id_mess IN ($checkati)";![]()
Brutte scorciatoieOriginariamente Scritto da Games
Il giorno che cambi qualcosa nel db o nella form corri il rischio di dover rifare tutto
Molto meglio assegnare un identificativo univoco ad ogni elemento della form e poi "parsarli" con un bel ciclo, nel quale nel tuo caso non fai altro che costruire la stringa da passare alla clausola WHERE della query.
Il giorno che cambi qualcosa (arriverÃ*, contaci che arriverÃ*) dovrai solo cambiare l'azione minima del ciclo, mentre la struttura della procedura rimarrÃ* invariata.
Stefano Giorgetti
always looking at the sky
uhm, se succederÃ* non mi basterÃ* cambiare la query?Originariamente Scritto da djordj
![]()
Forse si, forse no.Originariamente Scritto da Games
Meglio prevenire che curare![]()
![]()
![]()
![]()
Stefano Giorgetti
always looking at the sky
Per maggiore sicurezza scrivi tutto in linguaggio macchina, allora.Originariamente Scritto da djordj
Originariamente Scritto da diego72
![]()
![]()
![]()
Originariamente Scritto da diego72
![]()
![]()
![]()
![]()
Stefano Giorgetti
always looking at the sky
Segnalibri