Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    checkbox e caricamento dato su database

    Premetto che sono alle prime armi con il php e i database...
    Ho creato una checkbox in html in cui ho specificato i var valori.

    codice HTML:
    <form method="post" action="modulo.php">  <h3>Cosa Desidera?</h3>  <input type="checkbox" name="cibi[]" value="pasta"/> pasta<br/><br/>  <input type="checkbox" name="cibi[]" value="carne"/> carne<br/><br/>  <input type="checkbox" name="cibi[]" value="insalata"/> insalata<br/><br/>  <input type="checkbox" name="cibi[]" value="macedonia"/> macedonia<br/><br/>  <input type="checkbox" name="cibi[]" value="patate"/> patate<br/><br/>  <input type="checkbox" name="cibi[]" value="zucchine"/> zucchine<br/><br/>  <input type="checkbox" name="cibi[]" value="carote"/> carote<br/><br/>  <input type="checkbox" name="cibi[]" value="sesamo"/> sesamo<br/><br/>  <input type="submit" value="Invia il modulo"/></form>
    Poi ho creato il file "modulo.php" in cui ho inserito i seguenti codici...

    Codice PHP:
    <?php
    include "db_accesso.php";
    $cibi = isset($_POST['cibi']) ? $_POST['cibi'] : array();foreach($cibi as $cibo) {    mysql_query("UPDATE wp_posts SET post_content='$cibo' WHERE id=41");    echo $cibo '<br/>';}
    ?>

    la checkbox funziona e mi stampa a video i risultati, il problema è che invia al database solo l'ultima voce che seleziono o comunque una sola invece di inviarli tutti... vorrei capire dove ho sbagliato e perché!

    Grazie mille a tutti in anticipo per l'interessamento

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Certo, ad ogni esecuzione della query aggiorni il valore della stessa entry (l'id è sempre 41) e alla fine resta per forza di cose l'ultimo valore.

  3. #3
    Grazie mille per la risposta, scusami ma non sono ferrato sull'argomento, per risolvere questo problema come potrei fare??

  4. #4
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    per risolvere questo problema come potrei fare??
    Devi sempre specificare il risultato che vorresti ottenere. Chi ti aiuta non può tirare ad indovinare. Se seleziono solo 'carne' e 'pasta', allora 'post_content' della riga 41 che valore deve assumere? "carne,pasta"? Un array serializzato? json? Cosa?

  5. #5
    Vorrei che contenesse tutte la parti selezionate, se seleziono "carne" e "pasta" vorrei contenesse la scritta "carne, pasta"

  6. #6
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    http://php.net/manual/it/function.implode.php

    codice:
    $array = array('carne', 'pasta');
    $str = implode(', ', $array);
    
    echo $str; // carne, pasta

  7. #7
    Con questo codice riesco a fare l'upload delle caselle selezionate (selezionate nella checkbox ) sul database?? Dove devo inserirla la stringa? In quale parte del codice della pagina modulo.php??

    scusa l'ignoranza ma sto cercando di imparare il php e non riesco a capire perché a video funziona mentre quando utilizzo la variabile che usa la funzione echo mi carica sul database solo parte di quello che vedo... Questo è il link dove lo sto testando http://www.mywebdrive.it/imparophp/scelta.html

  8. #8
    Grazie per l'interessamento...

  9. #9
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    codice:
     <?php
    include "db_accesso.php";
    $cibi = isset($_POST['cibi']) ? (array) $_POST['cibi'] : array();
    
    $str = implode(', ', $cibi);
    mysql_query("UPDATE wp_posts SET post_content='".$str."' WHERE id=41");
    echo "Stringa salvata: ", $str;
    ?>
    Essendo lo scopo dello script quello di imparare, non lascio a te (quando ci arrivi) il compito di effettuare propriamente l'escape della stringa. Il codice qui sopra è valido (funziona), ma è vulnerabile.

Tag per questa discussione

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.