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

    stampare i checkbox usando un ciclo

    Salve a tutti...
    Sto facendo una esercitazione...
    praticamente ho creato un form di tipo checkbox con 6 valori(ho usato i giorni della settimana):

    <form method="post" action="./registrazione.php">


    I giorni della settimana liberi:


    Lunedi <input type="checkbox" name="lunedi" checked value="si"/>

    Martedi <input type="checkbox" name="martedi" value="si"/>

    Mercoledi <input type="checkbox" name="mercoledi" value="si"/>

    Giovedi <input type="checkbox" name="giovedi" value="si" />

    Venerdi <input type="checkbox" name="venerdi" value="si" />

    Sabato <input type="checkbox" name="sabato" value="si" />
    </form>

    Praticamente nella pagina registrazione.php vorrei stampare la/le scelte dell'utente...
    Per farlo ho inserito questo codice:

    <?php

    $lunedi=$_POST["lunedi"];
    $martedi=$_POST["martedi"];
    $mercoledi=$_POST["mercoledi"];
    $giovedi=$_POST['giovedi'];
    $venderdi=$_POST['venerdi'];
    $sabato=$_POST['sabato'];




    echo 'Giorni di disponibilità per turni: ';
    if (isset($lunedi)){
    echo Lunedi ;
    }
    if (isset($martedi)){
    echo Martedi;
    }
    if (isset($mercoledi)){
    echo Mercoledi ;
    }
    if (isset($giovedi)){
    echo Giovedi ;
    }
    if (isset($venerdi)){
    echo Venerdi;
    }
    if (isset($sabato)){
    echo Sabato; }

    ?>

    Il risultato è esatto però avrei potuto usare un ciclo... mi sapreste dire come posso ottenere lo stesso risultato senza scrivere la sequenza di if?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    ciao dando un'occhiata rapida potevi mettere in un array i valori della settimana, e poi ciclavi con un foreach i box, cois che il ciclo prenda sempre il nuovo valore dell'array tremite l'indice

  3. #3
    Grazie della risposta...
    Quindi dopo aver richiamato una variabile per ogni giorno :

    $lunedi=$_POST["lunedi"];
    $martedi=$_POST["martedi"];
    $mercoledi=$_POST["mercoledi"];
    $giovedi=$_POST['giovedi'];
    $venderdi=$_POST['venerdi'];
    $sabato=$_POST['sabato'];

    Devo inserirle in una variabile array:

    $giorni=array($lunedi,$martedi,$mercoledi,$giovedi ,$venerdi,$sabato);

    E poi usare il foreach.. Ma in che modo?

  4. #4
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    una volta che tu hai un array
    che sarà
    $giorni = array (0=>lunedi,1=>martedi,2=>mercoledi ... etc);

    fai un foreach

    foreach ($giorni as $gg){
    echo $gg;
    }
    cosi avrai la lista
    lunedi martedi mercoledi etc...

    se devi metterla in un checkbox le inserisci dove vuoi...

    oppure sapendo che hai 7 campi nell'arry utulizzi un ciclo for!

  5. #5
    Allora ci sono ho creato la lista... Con il foreach...
    Adesso devo fare il ciclo...

    però il foreach deve essere un comando da fare nel caso la condizione del for sia positiva...

    Mi spiego adesso dovrei applica il ciclo for e nel contatore far scorerrere gli elementi dell'array e nel caso in cui questi siano veri alla dichiarazione isset() devono essere stampati, con il foreach?

    Mi sto complicando la vita... :master:

  6. #6
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    eee?

    non ho capito ciò che hai detto...

    il for è un ciclo
    il foreach è un ciclo

    per far scorrere un array hai bisogno di un ciclo.

    php mette a disposizione il foreach che è molto comodo perche scorre il tuo array senza indicargli un indice mentre il for scritto cosi

    for ($i = 0 ; $ i < 7 ; $i++){
    echo array[$i];
    }

    come vedi ho dovuto indicargli quale indice prendere nell'array...


    il foreach che hai fatto serve solo per stampare i valori.
    oa tu quando cliccherai su invia manderai una variabile tramite post.

    e sul lato server farai ciò che devi.

    spero di essere stato un po chiaro...
    comunque

    1-un ciclo per stampare lato client la tua lista. (foreach , for , while o dowhile) uno di questi va bene!
    2- una volta che invii la variabile via post fai cio che devi sul server


    ciao

  7. #7
    ok grazie... vedrò di studiarmi meglio la situazione...

  8. #8
    si, dovresti studiare e chiarirti le idee sui cicli, vai su php.net o su manuali. cmq ti do un aiuto, tu vuoi che vengano stampati i giorni selezionati vero? allora fai cosi, ti do un esempio poi tu lo adatti:

    $settimana = array("lunedi","martedi","mercoledi","giovedi","ve nerdi","sabato");
    print (" giorni della settimana disponibili: ");
    foreach ($settimana as $gg)
    {
    if(*)
    print "$gg";
    }

    * = in questo IF fai il controllo se la checkbox è settata o meno. ovviamente il valore della checbox lo richiedi e lo assegni ad una variabile php, non puoi fare il controllo diretto sulla checkbox perche sarebbe un operazione lato client e php è lato server.
    esempio:<input name="giorno" type="checkbox" value"libero/o occupato(vedi tu)">
    $giorno = $_request['giorno']
    if ($giorno == "libero")
    lo printi

    www.gicchesto.com
    Servizi informatici ed elettronici a 360° per aziende e/o privati.

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.