Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    Checkbox generano array da inserire in un campo mysql

    Ciao,
    ho un form x inserire un nuovo mezzo in un DB mysql per un sito di macchine.
    Tra i vari campi ne ho uno di optional (pensavo di tipo "text") che vorrei ricevesse un array generato dal suddetto form tramite checkbox.
    Ho chiamato tutti i checkbox "Optional" ed per valore selezionato ho messo ABS, Airbag, etc (sono una 30ina).
    Fatto semplicemente così mi inserisce solo l'ultimo valore selezionato mentre io vorrei mi inserisse tutti i valori selezionati separati da una virgola.
    Come costruisco questo semplice array e dove lo scrivo?

    Grazie!

    Nik

    posto il pezzetto di codice :

    <td><input name="Optional" type="checkbox" id="Optional" value="ABS">
    <input name="Optional" type="checkbox" id="Optional" value="Airbag"> </td>
    </tr>
    <tr valign="baseline">
    <td nowrap align="right"></td>
    <td>


    <label></label>
    </p></td>
    </tr>
    <tr valign="baseline">
    <td nowrap align="right"></td>
    <td><input type="submit" value="Inserisci record"></td>
    </tr>
    </table>
    <input type="hidden" name="MM_insert" value="form1">
    </form>

  2. #2
    se li chiami tutti allo stesso modo vai in errore..

    ogni check box deve avere un nome differente, magari

    <input type=check name=ABS....

    poi nella pagina php verifichi se esiste il dato con

    if($_POST["ABS"])
    {$tuttioptional .= $_POST["ABS"].",";}


  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    se li chiami tutti allo stesso modo vai in errore..
    bhè,non è vero...
    se chiami i check ex:
    <input type="checkbox" name="Optional[]" value="Airbag">
    <input type="checkbox" name="Optional[]" value="ABS">

    quando li recuperi avrai un array con i valori selezionati:
    print_r($_POST['Optional']);

    per avere i valori selezionati separati da una virgola,usa implode ( http://it.php.net/manual/it/function.implode.php )

    $newArr = implode(",",$_POST['Optional']);
    echo $newArr;


    ma sinc non ho capito se vuoi inserire nel campo text i valori dei check selezionati prima di inviare il form, se fosse così, mi sa che devi usare javascript...

    ciao

  4. #4
    Caspita!
    Grazie per la fulminea risposta !
    ho bisogno di un pelo piu di supporto però..

    Il codice dei check l'ho riscritto cosi(uso dreamweaver):

    <tr valign="baseline">
    <td nowrap align="right">Optional</td>
    <td><input name="ABS" type="checkbox" id="ABS">
    <input name="Airbag" type="checkbox" id="Airbag">
    </td>
    </tr>
    <tr valign="baseline">
    <td nowrap align="right"></td>
    <td><input type="submit" value="Inserisci record"></td>
    </tr>
    </table>
    <input type="hidden" name="MM_insert" value="form1">
    </form>

    Ora, considerando che la pagina che contiene il form è gia in php, la condizione basta scriverla sotto il form cosi:

    ...
    <input type="hidden" name="MM_insert" value="form1">
    </form>
    <?
    if($_POST["ABS"],["Airbag"])
    {$optional .= $_POST["ABS"]["Airbag"];}
    ?>

    Spero di nn aver scritto castronate ma sono agli albori e la nebbia è densa....

    Grazie

  5. #5
    Cavolo un altra risp! Gasp, grazie ken84

    Anche io avevo capito che posso chiamarli tutto optional e assegnare diversi valori come da primo codice postato, però non so dove e come generare l'array per passarlo al DB nel campo optional...

    Pendo dalle vs labbra

    Ciao

  6. #6
    Dimenticavo...
    "
    ma sinc non ho capito se vuoi inserire nel campo text i valori dei check selezionati prima di inviare il form
    "
    no, devo inserire i valori quando invio il form

    intanto ho ri-scritto il codice così:

    <tr valign="baseline">
    <td nowrap align="right">Optional</td>
    <td><input name="Optional[]" type="checkbox" id="Optional[]" value="ABS">
    <input name="Optional[]" type="checkbox" id="Optional[]" value="Airbag">
    </td>
    </tr>
    <tr valign="baseline">
    <td nowrap align="right"></td>
    <td><input type="submit" value="Inserisci record"></td>
    </tr>
    </table>
    <input type="hidden" name="MM_insert" value="form1">
    </form>

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    Originariamente inviato da nicemotion
    Cavolo un altra risp! Gasp, grazie ken84

    Anche io avevo capito che posso chiamarli tutto optional e assegnare diversi valori come da primo codice postato, però non so dove e come generare l'array per passarlo al DB nel campo optional...

    Pendo dalle vs labbra

    Ciao
    Scusa, ma non ho capito cosa intendi...
    Se fai come ti ho postato, ti ritroverai tutti i valori prima in un array e poi con la funzione impolde, ti crei la stringa che volevi tu, ossia tutti i valori di questo array separati con una virgola...

    Ma sinc non ho capito cosa intenda tu nella risposta che hai dato...
    Devi estrarre dei valori da DB per popolare i checkbox?
    Avevi dubbi su come venissero passati i dati ?( te lo scritto sopra )
    Oppure tu vuoi selezionare dei checkbox e far visaulizzare i valori di questi all'interno di un campo text da te dichiarato?( dal primo post mi sembrava di aver capito questo..)

    ciao

  8. #8
    verifica un dato alla volta dei POST e aggiungilo se esiste nel campo che dovrai inserire nel db.


  9. #9
    dear ken84,


    fagiani a parte, come premesso sono agli albori del php; cio che a te appare evidente per me non lo è; cerco di spiegarmi meglio:

    devo popolare un campo che si chiama OPTIONAL di tipo text in un db mysql e vorrei farlo con un array generato da un form per mezzo di checkbox nel momento dell'invio del form...è il classico "inserisci la tua macchina" dove, oltre al modello, colore etc si specificano anche gli optional.

    il form funziona perfettamente per tutti gli altri campi ma non so come e in che punto della pagina php scrivere l'array che raccoglie i valori dei vari checkbox optionals[]

    Il pezzo di codice PHP che si occupa di inserire i vari valori nel Db è questo:

    if ((isset($HTTP_POST_VARS["MM_insert"])) && ($HTTP_POST_VARS["MM_insert"] == "form1")) {
    $insertSQL = sprintf("INSERT INTO macchine (ID_car, `Data`, Targa, Marca_, Modello, TipoAuto_, Colore, Alimentazione_, Cilindrata, Mese, Anno, KmPercorsi, Descizione, Optional, Prezzo, PrezzoAcquisto, CommentiInterni, Icona, FOTO1, FOTO2, FOTO3, FOTO4, PROMOTE, Pubblica, Nome_Cognome, Telefono, mail) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
    GetSQLValueString($HTTP_POST_VARS['ID_car'], "int"),
    GetSQLValueString($HTTP_POST_VARS['Data'], "date"),
    GetSQLValueString($HTTP_POST_VARS['Targa'], "text"),
    GetSQLValueString($HTTP_POST_VARS['Marca_'], "int"),
    GetSQLValueString($HTTP_POST_VARS['Modello'], "text"),
    GetSQLValueString($HTTP_POST_VARS['TipoAuto_'], "int"),
    GetSQLValueString($HTTP_POST_VARS['Colore'], "text"),
    GetSQLValueString($HTTP_POST_VARS['Alimentazione_'], "int"),
    GetSQLValueString($HTTP_POST_VARS['Cilindrata'], "int"),
    GetSQLValueString($HTTP_POST_VARS['Mese'], "int"),
    GetSQLValueString($HTTP_POST_VARS['Anno'], "int"),
    GetSQLValueString($HTTP_POST_VARS['KmPercorsi'], "int"),
    GetSQLValueString($HTTP_POST_VARS['Descizione'], "text"),
    GetSQLValueString($HTTP_POST_VARS['Optional[]'], "text"),
    GetSQLValueString($HTTP_POST_VARS['Prezzo'], "int"),
    GetSQLValueString($HTTP_POST_VARS['PrezzoAcquisto'], "int"),
    GetSQLValueString($HTTP_POST_VARS['CommentiInterni'], "text"),
    GetSQLValueString($HTTP_POST_VARS['Icona'], "text"),
    GetSQLValueString($HTTP_POST_VARS['FOTO1'], "text"),
    GetSQLValueString($HTTP_POST_VARS['FOTO2'], "text"),
    GetSQLValueString($HTTP_POST_VARS['FOTO3'], "text"),
    GetSQLValueString($HTTP_POST_VARS['FOTO4'], "text"),
    GetSQLValueString($HTTP_POST_VARS['PROMOTE'], "int"),
    GetSQLValueString($HTTP_POST_VARS['Pubblica'], "text"),
    GetSQLValueString($HTTP_POST_VARS['Nome_Cognome'], "text"),
    GetSQLValueString($HTTP_POST_VARS['Telefono'], "text"),
    GetSQLValueString($HTTP_POST_VARS['mail'], "text"));

    mysql_select_db($database_conn_dbauto, $conn_dbauto);
    $Result1 = mysql_query($insertSQL, $conn_dbauto) or die(mysql_error());
    }

    Grazie per la pazienza !

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    Originariamente inviato da nicemotion
    dear ken84,


    fagiani a parte, come premesso sono agli albori del php; cio che a te appare evidente per me non lo è; cerco di spiegarmi meglio:
    Non ho mai detto che sei un fagiano
    Se ti ho fatto quelle domande è solo per chiarezza personale e magari di chi legge la discussione che potrebbe anche porsi le stesse domande...
    Non mi permetto di dare del fagiano a nessuno, perchè sono io il primo ad esserlo, perciò...

    devo popolare un campo che si chiama OPTIONAL di tipo text in un db mysql e vorrei farlo con un array generato da un form per mezzo di checkbox nel momento dell'invio del form...è il classico "inserisci la tua macchina" dove, oltre al modello, colore etc si specificano anche gli optional.

    il form funziona perfettamente per tutti gli altri campi ma non so come e in che punto della pagina php scrivere l'array che raccoglie i valori dei vari checkbox optionals[]

    Il pezzo di codice PHP che si occupa di inserire i vari valori nel Db è questo:

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

    Qui recuperi i valori e ti crei la stringa con la ',' come separatore e poi ti crei la query...



    $insertSQL = sprintf("INSERT INTO macchine (ID_car, `Data`, Targa, Marca_, Modello, TipoAuto_, Colore, Alimentazione_, Cilindrata, Mese, Anno, KmPercorsi, Descizione, Optional, Prezzo, PrezzoAcquisto, CommentiInterni, Icona, FOTO1, FOTO2, FOTO3, FOTO4, PROMOTE, Pubblica, Nome_Cognome, Telefono, mail) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",.......


    }

    Grazie per la pazienza !
    sxo di esserti stato d'aiuto e mi spiace solo che te la sia presa.
    Ciao

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 © 2024 vBulletin Solutions, Inc. All rights reserved.