Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di darkiko
    Registrato dal
    Feb 2002
    Messaggi
    3,030

    checkbox multipla e scrittura su un db

    Signori buongiorno

    scusate se disturbo per forse una stupidata ma ho un po' di confusione in testa.

    ho un form piuttosto articolato, in cui c'è, in mezzo ad altro, una checkbox in cui gli utenti possono scegliere al massimo 5 possibilità su un elenco di 30.

    quindi queste 30 checkbox hanno lo stesso nome, diciamo "pippo", e poi ognuna ovviamente un value diverso;
    il mio db (tra l'altro in access ) ha 5 campi chiamati "pippo1" "pippo2" "pippo3" etc.. per le 5 possibili scelte.

    ora, come faccio a dire al mio form (ovviamente in php)
    che i 5 (al massimo) checkbox scelti che hanno lo stesso nome devono dividersi in "pippo1" "pippo2" etc..?


    oh, magari sto scrivendo una vaccata, ma ho la testa che mi scoppia e con questa confusione non so come muovermi...

    spero di essere stato chiaro, se no ditemelo che cercherò di spiegarmi meglio...

    grazie mille
    è nella nostra unicità che risiede la meraviglia degli esseri umani

  2. #2
    Utente di HTML.it L'avatar di darkiko
    Registrato dal
    Feb 2002
    Messaggi
    3,030
    scusatemi se uppo già, ma purtroppo è piuttosto urgente
    è nella nostra unicità che risiede la meraviglia degli esseri umani

  3. #3
    Beh, dopo che hai inviato la form dovresti ritrovarti per le mani $pippo come ARRAY.
    Questo ovviamente se il nome dei checkbox è così:

    name="pippo[]"

    Dopo non devi far altro che ciclare sull'array con un for o foreach e recuperare ogni valore.

    Ciao.

  4. #4
    Utente di HTML.it L'avatar di darkiko
    Registrato dal
    Feb 2002
    Messaggi
    3,030
    Originariamente inviato da insanelight
    Dopo non devi far altro che ciclare sull'array con un for o foreach e recuperare ogni valore.
    intanto grazie mille per la risposta... sappi che mi stai salvando la vita


    puoi farmi un esempio come se fossi un bambino di 5 anni?
    è nella nostra unicità che risiede la meraviglia degli esseri umani

  5. #5
    foreach ($pippo as $value)
    echo $value; // stampa pippo1, poi pippo2, poi pippo3 eccetera...


    Ciao.

  6. #6
    Utente di HTML.it L'avatar di darkiko
    Registrato dal
    Feb 2002
    Messaggi
    3,030
    Originariamente inviato da insanelight
    foreach ($pippo as $value)
    echo $value; // stampa pippo1, poi pippo2, poi pippo3 eccetera...


    Ciao.
    perfect, ora provo

    Grazie
    è nella nostra unicità che risiede la meraviglia degli esseri umani

  7. #7
    Utente di HTML.it L'avatar di darkiko
    Registrato dal
    Feb 2002
    Messaggi
    3,030
    dunque,
    l'utente può scegliere al massimo 5 checkbox su una trentina.

    ho creato l'array dando nel form nome: posizione_ambita[] e poi nella pagina che lo processa, per mandare i valori scelti
    codice:
    INSERT INTO Tabella (blablabla, posizione_ambita1, posizione_ambita2, 
    posizione_ambita3, posizione_ambita4,  blablabla) VALUES ('blablabla', 'posizione_ambita[0]', 'posizione_ambita[1]', 
    'posizione_ambita[2]', 'posizione_ambita[3]', 'posizione_ambita[4]', 'blablabla')
    "blablabla" sono gli altri campi del form esterni a quest'array.

    funziona tutto alla grande

    ho solo un piccolo problema.
    come dicevo le scelte possibili sono al massimo 5, ma se un'utente ne seleziona meno alcune variabili restano indefinite e giustamente mi restituisce questo errore:
    codice:
    Notice: Undefined index: 4 in C:\Webs\blabla\form.php on line 79
    l'unica soluzione che mi è venuta in mente era di creare 5 checkbox hidden con value='' ma così mi sminchiano l'array che dovrebbe partire da posizione_ambita[5]...
    non l'ho provato, se funzionasse andrebbe bene comunque ma penso che ci sia qualche metodo più ortodosso

    come potrei fare?

    grazie
    è nella nostra unicità che risiede la meraviglia degli esseri umani

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Così a intuito pensavo che potresti fare un ciclo while e finchè la sizeof dell'array è inferiore a 5 ci aggiungi le stringhe vuote "" mancanti.
    Magari qualcuno però ha un'idea migliore.

  9. #9
    Utente di HTML.it L'avatar di fabi080
    Registrato dal
    Mar 2002
    Messaggi
    442
    Se le 5 scelte devono essere obbligatorie fai così
    Codice PHP:
    if (!= ($n count($_POST['checkbox'])) {
      echo 
    "errore scegli 5 caselle";

    se invece sono al massimo 5, così verifichi il numero
    Codice PHP:
    if (< ($n count($_POST['checkbox'])) {
      echo 
    "errore scegli max 5 caselle";

    poi le puoi recuperare senza errori con un foreach, così non rischi il notice, e infine completi le scelte con
    Codice PHP:
    for ($i $n$i<5$i++) {
      
    $scelte[$i] = ''

  10. #10
    Utente di HTML.it L'avatar di darkiko
    Registrato dal
    Feb 2002
    Messaggi
    3,030
    scusatemi ma sono un po' di coccio...

    sto ad adattare il metodo di fabi080
    il controllo sul numero di scelte lo faccio già via js e allora ho provato ad aggiungere

    codice:
    $n = count($_POST['posizione_ambita']
    for ($i = $n; $i<6; $i++) {
    $scelte[$i] = '';
    ma non so più come muovermi...

    non capisco come usare quello $scelte...

    scusatemi per l'ignoranza in materia, ma sono un po' in difficoltà
    è nella nostra unicità che risiede la meraviglia degli esseri umani

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.