Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22

Discussione: help checkbox

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    196

    help checkbox

    ciao,ho bisgno di aiuto per un problema che nn riesco a risolvere...
    il mio problema sono gli array,in particolare in una pgina di modifica,in cui ho una serie di abilitazioni che posso o meno flaggare per consentire l'abilitazione all'utente o meno...
    non riesco a fare in modo di modificare i valori nel database in base a quelli che sono flaggati nel form...

    <td nowrap><input name="Id_ab[]" type="text" id="Id_ab[]" value="<?php echo $row_mod_abil['Id_abilitazione']; ?>"></td>
    <td nowrap><input name="abilitato[]" type="checkbox" value="<?php echo $row_mod_abil['Abil']; ?>"
    <?php
    if ($row_mod_abil['Abil'] == "true")
    {
    print "checked";
    }
    per le checkbox gli faccio stampare true se sono flaggate altrimenti false,come faccio a fare la query di update dicendogli di prendere tutti gli Id_abilitazione e per ognuno vedere se la checkbox è spuntata o no e quindi modificare il valore nel database?
    devo fare un ciclo for prima dell'update,se si come devo farlo?

    ciao grazie
    PHP, ASP, Javascript

  2. #2
    allora se tu hai una lunga serie di checkbox con name=array[]

    quello che riceverai è un array $_POST['array'] dove dentro trovi tutti i value delle checkbox selezionate.

    che valore passi dentro la checkbox?
    come è strutturato il database?

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    196
    quando faccio l'inserimento nel database passo l'id dell'utente che devo abilitare e il valore Abil impostato a true se flaggato altrimenti false;perciò nel database salvo tutti gli utenti con valore true o false..
    nel file di modifica mi basta soltanto prendere l'Id_abilitazione che è univoco e il valore Abil(true o false),io dovrei scandire l'array dell'id_abilitazione e per ogni valore vedere se è spuntato o no e quindi passarlo in qualche modo alla query di update..

    per l'Id_abilitazione il valore lo prendo dal db in questo modo:
    <input name="Id_ab[]" type="text" id="Id_ab[]" value="<?php echo $row_mod_abil['Id_abilitazione']; ?>">

    mentre il valore del campo Abil:
    <input name="abilitato[]" type="checkbox" value="<?php echo $row_mod_abil['Abil']; ?>"
    <?php
    if ($row_mod_abil['Abil'] == "true")
    {
    print "checked";
    }
    ?>>

    prima della query di update recupero il valore dell'array sull'Id_abilitazione in questo modo

    $Num_abil = $_POST['Id_ab'];

    però nn riesco ad associare ad ogni Id_abilitazione il valore della sua checkbox..
    PHP, ASP, Javascript

  4. #4
    fai così:

    Codice PHP:
    <td nowrap><input name="abilitato[]" type="checkbox" value="<?php echo $row_mod_abil['Id_abilitazione']; ?>"
    <?php echo (($row_mod_abil['Abil'] == 1'checked' ''); ?>
    nella pagina dove fai gli update
    for ($_POST['abilitato'][$i]){
    UPDATE tabella SET Abil=1 WHERE Id_abilitazione = $_POST['abilitato'][$i];
    }

    ti consiglio di memorizzare il campo abil come un campo smallint(1) dove scrivi 1, se è abilitato, e 0, se non è abilitato. E zero come valore di default

  5. #5
    se paplo...bella roba, sarai un figo per mysql_insert_id()
    ma qui mi deludi..quante cacchio di query vuoi fargli fare, quando ne basta una?


    Codice PHP:

    $query 
    "UPDATE tabella SET Abil=1 WHERE id IN (".implode(',',$_POST['abilitato']).");"
    la sintassi IN prevede che gli passi una lista comma separated quindi:
    IN (1,3,5,7,890,75443)
    quello che fai è prendere tutti gli elementi dell'array $_POST['abilitato'] e inserirli in una stringa separandoli con la virgola

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    196
    scusa nn ho ben capito..
    la parte dove recupero i valori è ok?..devo soltanto modificare la parte della query,devo mettere il for e poi la riga che mi hai detto tu?
    //array che riguarda l'Id_abilitazione(univoco)
    $Num_abil = $_POST['Id_ab'];

    for($i=0; $i<count($Num_abil); $i++)
    {
    $query = "UPDATE tabella SET Abil=1 WHERE id IN (".implode(',',$_POST['abilitato']).");";
    }

    cosa fa di preciso la query?in questo modo gli passo per ogni Id_abilitazione il valore che trova nella checkbox?

    ciao
    PHP, ASP, Javascript

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    196
    ho provato nel modo postato sopra ma nn funziona

    $Num_abil = $_POST['Id_ab'];

    for($i=0; $i<count($Num_abil); $i++)
    {
    $query = "UPDATE tabella SET Abil=true WHERE Id_abilitazione IN (".implode(',',$_POST['abilitato']).");";
    }

    cosa c'è che devo cambiare?
    PHP, ASP, Javascript

  8. #8
    riporta il codice di entrambe le parti

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    196
    questa è l'area ripetuta dove stampo quello che ho inserito nel db
    <?php do { ?>
    <tr>
    <td nowrap>
    <input name="Id_ab[]" type="text" id="Id_ab[]" value="<?php echo $row_mod_abil['Id_abilitazione']; ?>"></td>
    <td nowrap>
    <input name="abilitato[]" type="checkbox" value="<?php echo $row_mod_abil['Abil']; ?>"
    <?php
    if ($row_mod_abil['Abil'] == "true")
    {
    print "checked";
    }
    ?>>
    </td>
    </tr>
    <?php } while ($row_mod_abil = mysql_fetch_assoc($mod_abil)); ?>

    mentre questa è la parte per fare la query di update

    if ((isset($HTTP_POST_VARS["MM_update"])) && ($HTTP_POST_VARS["MM_update"] == "form1")) {

    $Num_abil = $_POST['Id_ab'];

    for($i=0; $i<count($Num_abil); $i++)
    {
    $query = "UPDATE tabella SET Abil=true WHERE Id_abilitazione IN (".implode(',',$_POST['abilitato']).");";
    }
    echo $query;
    }

    questo è quello che mi scrive quando la eseguo

    UPDATE tabella SET Abil=true WHERE Id_abilitazione IN (false,true,true,true);

    praticamente avevo 7 utenti di cui i primi 4 a false e gli utlimi tre flaggati quindi a true,ho provato a flaggarne un'altro e mi ha scritto la riga sopra...
    PHP, ASP, Javascript

  10. #10
    modifica così:
    (si vede che non hai letto i nostri post precedenti )

    questa è l'area ripetuta dove stampo quello che ho inserito nel db
    <?php do { ?>
    <tr>
    <td nowrap>
    <input name="abilitato[]" type="checkbox" value="<?php echo $row_mod_abil['Id_abilitazione']; ?>"
    <?php
    if ($row_mod_abil['Abil'] == "true")
    {
    print "checked";
    }
    ?>>
    </td>
    </tr>
    <?php } while ($row_mod_abil = mysql_fetch_assoc($mod_abil)); ?>

    mentre questa è la parte per fare la query di update

    if ((isset($HTTP_POST_VARS["MM_update"])) && ($HTTP_POST_VARS["MM_update"] == "form1")) {

    $query = "UPDATE tabella SET Abil=true WHERE Id_abilitazione IN (".implode(',',$_POST['abilitato']).");";

    echo $query;
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.