Visualizzazione risultati 1 fino 6 di 6

Discussione: Problemi con checkbox

  1. #1
    LaTuaSpesa non è connesso Neofita
    Data registrazione
    10-10-2018
    Messaggi
    7

    Predefinito Problemi con checkbox

    Salve a tutti, l'ultima volta che ho scritto su questo forum mi è tornato utilissimo quindi ne riapprofitto! A questo link (http://latuaspesa.altervista.org/ListaSpesa.php) c'è una paginetta in cui compare un elenco di ingredienti estratti da un data base e al click del bottone in cima l'elenco viene svuotato perchè la pagina visualizza solo gli ingredienti con disponibilità settata 0 e al click sul carrello la disponibilità passa a 1 per tutti gli ingredienti. Adesso vorrei raffinare un attimo questo concetto con dei checkbox che mi permettano di settare la disponibilità del singolo ingrediente, ma non ho idea di come fare. Vi lascio la parte del php di interesse. Grazie a tutti :) saluti.


    Codice PHP:
    $resultSet= mysql_query("SELECT * FROM Ingredienti
    WHERE Disponibile = 0"
    );

    echo
    '<form action="'.$_SERVER['PHP_SELF'].'" method="post">
    <input type="hidden" name="spesaFatta">
    <button class="button" title="Spesa Fatta"><input type="submit" value=""> <h1>SpesaFatta</h1><i id="carrello" class="material-icons" style="font-size:40px;">shopping_cart</i> </button>
    </form><br>'
    ;

    while(
    $rec=mysql_fetch_assoc($resultSet)){
    echo
    "<p>".$rec['Nome']."</p>";
    }

    if(isset(
    $_POST['spesaFatta'])) {
    mysql_query("UPDATE `my_latuaspesa`.`Ingredienti`
    SET `Disponibile` = 1"
    ) or
    die (
    mysql_error());
    header("location: ListaSpesa.php");
    }

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,179

    Predefinito

    Citazione Originalmente inviato da LaTuaSpesa Visualizza messaggio
    al click del bottone in cima l'elenco viene svuotato perchè la pagina visualizza solo gli ingredienti con disponibilità settata 0 e al click sul carrello la disponibilità passa a 1 per tutti gli ingredienti
    Non vedo ingredienti in quella pagina, quindi non ho ben capito il problema.

    In ogni caso, l'uso del checkbox è semplice, vedi qui.

    In breve, se è spuntato, esisterà il parametro $_POST['nome'], altrimenti non esisterà. Quindi devi controllarlo con la isset().

    Ciao!

  3. #3
    LaTuaSpesa non è connesso Neofita
    Data registrazione
    10-10-2018
    Messaggi
    7

    Wink

    Ciao! Grazie mille per avermi risposto. Se passi ora dalla pagina troverai tre lettere (a,b,c) fai finta che siano ingredienti :)
    Comunque ho aggiunto queste due righe, ma chiaramente qualcosa non funziona. Vorrei che al click sul tasto col carrello se non è spuntato nulla viene svuotata l'intera lista, altrimenti solo gli elementi selezionati. Qualcosa però proprio non mi torna.

    Codice PHP:
    while($rec=mysql_fetch_assoc($resultSet)){
    $ingr=$rec['Nome'];
    echo
    '<input type="checkbox" name='.$ingr.'><p>'.$ingr.'</p><br>';
    if(isset(
    $_POST["$ingr"])){
    mysql_query("UPDATE `my_latuaspesa`.`Ingredienti`
    SET `Disponibile` = 1
    WHERE Ingredienti.Nome='
    $ingr'") or
    die (
    mysql_error());
    header("location: ListaSpesa.php");
    }
    }

  4. #4
    LaTuaSpesa non è connesso Neofita
    Data registrazione
    10-10-2018
    Messaggi
    7

    Predefinito

    Ho quasi risolto, mi resta un solo problema. Quando seleziono più elementi con la checkbox elimina soltanto quello che è stato selezionato per primo e non tutti quelli selezionati come io vorrei. Mentre, in alcuni casi, (e non riesco a capire proprio da cosa dipenda) anche se ho selezionato un elemento va a svuotare l'intera lista. Qui sotto il mio codice al momento.

    Codice PHP:
    echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post">
    <input type="hidden" name="spesaFatta">
    <button class="button" title="Spesa Fatta"><input type="submit" value=""><h1>Spesa Fatta</h1><i id="carrello" class="material-icons" style="font-size:40px;">shopping_cart</i></button>
    <br>
    <br>'
    ;

    while(
    $rec=mysql_fetch_assoc($resultSet)){
    echo
    '<input type="checkbox" name="ingredienti[]" value="'.$rec['Nome'].'"id="'.$rec['Nome'].'"><label for="'.$rec['Nome'].'"><p>'.$rec['Nome'].'</p></label><br></form>';
    }

    foreach(
    $_POST['ingredienti'] as $ingrediente){
    if(isset(
    $_POST["spesaFatta"])){
    mysql_query("UPDATE `my_latuaspesa`.`Ingredienti`
    SET `Disponibile` = 1
    WHERE Ingredienti.Nome='
    $ingrediente'") or
    die (
    mysql_error());
    header("location: ListaSpesa.php");
    }
    }

    $ingredienti = isset($_POST['ingredienti']) ? $_POST['ingredienti'] : array();

    if((isset(
    $_POST["spesaFatta"]))&&(empty($ingredienti))){
    mysql_query("UPDATE `my_latuaspesa`.`Ingredienti`
    SET `Disponibile` = 1"
    )
    or die (
    mysql_error());
    header("location: ListaSpesa.php");
    }
    Ultima modifica di LaTuaSpesa : 28-10-2018 alle ore 19.35.16

  5. #5
    LaTuaSpesa non è connesso Neofita
    Data registrazione
    10-10-2018
    Messaggi
    7

    Predefinito

    Ho quasi risolto, mi resta un solo problema. Quando seleziono più elementi con la checkbox elimina soltanto quello che è stato selezionato per primo e non tutti quelli selezionati come io vorrei. Mentre, in alcuni casi, (e non riesco a capire proprio da cosa dipenda) anche se ho selezionato un elemento va a svuotare l'intera lista Qui sotto il mio codice al momento.

    Codice PHP:
    echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post">
    <input type="hidden" name="spesaFatta">
    <button class="button" title="Spesa Fatta"><input type="submit" value=""><h1>Spesa Fatta</h1><i id="carrello" class="material-icons" style="font-size:40px;">shopping_cart</i></button>
    <br>
    <br>'
    ;

    while(
    $rec=mysql_fetch_assoc($resultSet)){
    echo
    '<input type="checkbox" name="ingredienti[]" value="'.$rec['Nome'].'"id="'.$rec['Nome'].'"><label for="'.$rec['Nome'].'"><p>'.$rec['Nome'].'</p></label><br></form>';
    }

    foreach(
    $_POST['ingredienti'] as $ingrediente){
    if(isset(
    $_POST["spesaFatta"])){
    mysql_query("UPDATE `my_latuaspesa`.`Ingredienti`
    SET `Disponibile` = 1
    WHERE Ingredienti.Nome='
    $ingrediente'") or
    die (
    mysql_error());
    header("location: ListaSpesa.php");
    }
    }

    $ingredienti = isset($_POST['ingredienti']) ? $_POST['ingredienti'] : array();

    if((isset(
    $_POST["spesaFatta"]))&&(empty($ingredienti))){
    mysql_query("UPDATE `my_latuaspesa`.`Ingredienti`
    SET `Disponibile` = 1"
    )
    or die (
    mysql_error());
    header("location: ListaSpesa.php");
    }

  6. #6
    LaTuaSpesa non è connesso Neofita
    Data registrazione
    10-10-2018
    Messaggi
    7

    Predefinito

    Mi sono appena reso conto che stampavo il tag di chiusura della form nel while e non fuori! Scusate sono proprio un nabbo. Stampando </form> fuori dal while funziona a meraviglia. Grazie ancora per la risposta, saluti!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •