Newsgroup: it.comp.www.php
Titolo: Checkbox selezione e deselezione

Ciao a tutti, premetto che sono un pivello in php.
Ho creato un elenco di utenti (da DB) a cui devo dare accesso/nonAccesso ad
un'area riservata, ho pensato di aggiungere ad ogni utente un checkbox da
spuntare se l'utente è autorizzato o da togliere se un utente debba essere
disabilitato. Tutto questo aggiornado il DB(mysql) nel campo accesso con uno
0 o 1.
Sono arrivato a capire che ogni checkbox deve avere un valore diverso,
usando ad esempio un array, e creando un ciclo for con all'interno la query
INSERT INTO .... . Il problema è che non mi aggiorna i campi, spuntati o
viceversa.
Oddiooo!!! Ho creato un mostro di discorso(in senso dispregiativo)
Ciao Leuro
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 viceversa.
un po di codice please...
stefano


Ciao, prima di tutto se devi modificarli devi eseguire una UPDATE e non un
INSERT INTO.
Per le checkbox chiamale con lo stesso nome seguito da []
Esempio:
<input type="checkbox" name="checkbox[]" value="Nick1">Nick1
<input type="checkbox" name="checkbox[]" value="Nick2">Nick2
<input type="checkbox" name="checkbox[]" value="Nick3">Nick3
e poi nella pagina in cui li devi recuperare tratti la vabile
$_POST["checkbox"] esattamente come un array.
Spero di essere stato chiaro.
Ciaoo


----------------pag invio-----------
<html>...
 <input type="checkbox" name="ok_ut[]" value="$id" />
----------------pag ricevuta----------------
<?php
$db= mysql_connect ($hostname, $username)
or die ("non è possibile connettersi al database");
$sql= "UPDATE giornalisti SET ok=1 WHERE ID=$ok_ut[$id]";
foreach($ok_ut as $id){
mysql_query($sql, $db);
}
 ?>



 
insomma...


 insomma...
Be effettivamente hai ragione.
Presumibilmente avrai una pagina che fungerà da pannello di controllo nella
quale vedrai una tabella con nick utente e a fianco un checkbox per
abilitare/disabilitare la user.
Allora, per avere questo devi
1) Eseguire una query sul DB "SELECT user, flag_access FROM Login ORDER BY
user". In questo modo avrai tutti i valori dal DB nella forma USER ->
ACCESSO.
2) Devi ovviamente creare la tabella per visualizzarti questi risultati:
    <form name="form1" method="post" action="la pagina che eseguirà le
modifiche">
        <table width="430" border="0" cellspacing="0" cellpadding="0">
        <?php
            $res = "in questo momento faccio cconto di avere già eseguito la
query e $res sarà l'id della query"
            while ($row = mysql_fetch_array($res)) {
        ?>
        <tr>
          <td width="335"><?php echo $row["user"] ?></td>
          <td width="95"><input type="checkbox" name="access[]" value="<?php
echo $row["user"] ?>"
                <?php if ($row["flag_access"]) {echo " checked";} ?>
                ><?php echo $row["user"] ?></td>
        </tr>
     <?php
      }
     ?>
      </table>
    </form>
OK, in questo modo ottiene in forma tabellare tutte le user presenti nel tuo
DB, con un controllo relativo al fatto che siano o meno abilitate. Per
quanto riguarda il nome e i parametri del form, vedili tu a seconda di come
intendi procedere.
Poi ovviamente nella pagina che esegue le modifiche non fai altro che
<?
    if (is_array($_POST["access"])) {
        //fai un update per tutti i valori con flag_access = 0;
        $ar = $_POST["access"];
        for ($i=0; $i < count($ar); $i++) {
            //qui dentro esegui le azioni che ti servono, in questo caso le
udate per i soli valori validi.
        }
    }
?>
Ossia cicli i valori che ti sono arrivati validi e settu per quelle utenze
in flag_access uguale a 1.
P.S. in questo modo, vai a settare a 0 tutti i valori e poi setti solo
quelli validi.
Non so se sia meglio così oppure rintracciare le sole modifiche rispetto ai
valori precedenti, ma mi sa che così sia più veloce.
Se continuo a non spiegarmi, riscrivimelo, purtroppo faccio schifo a
spiegare le cose, quindi non ti mettere problemi.

Grazie mille il discorso fila ; ) ma lo script no, non mi azzera ne i
permessi, ne me li crea.
Provo a svilupparlo sulla tua base. Grazie ancora.



  ?>
qui ci sono errori di logica nell'usare l'input html
e soprattutto nell'approccio usato, se fossi in te cercherei di capire
esattamente come funziona il checkbox e poi al limite userei un radio (ma
non mi piacerebbe lo stesso)
<form method=post action=$PHP_SELF>
<input type=radio name='ok_ut[$id]' value=on checked>
<input type=radio name='ok_ut[$id]' value=off><br />
<input type=radio name='ok_ut[$id]' value=on checked>
<input type=radio name='ok_ut[$id]' value=off><br />
<input type=submit>
</form>
--
www.iuz-lab.info