Visualizzazione risultati 1 fino 9 di 9

Discussione: FORM con CHECKBOX o RADIO

  1. #1
    lionalex non è connesso Utente attivo
    Data registrazione
    10-12-2002
    Messaggi
    446

    Predefinito FORM con CHECKBOX o RADIO

    vorrei sapere come si fa a mettere un limite ai form con i CHECKBOX o i RADIO. Mi spiego meglio, creando un FORM con i CHECKBOX, è possibile immettere un limite di selezioni? Esempio 10 checkbox dei quali possono essere selezionati solo 5 voci e lo stesso per i RADIO. E' possibile tutto questo?
    Chi troppo vuole....vuole LionAlex...

  2. #2
    L'avatar di smilzo666
    smilzo666 non è connesso Utente
    Data registrazione
    22-09-2003
    Residenza
    La Capitale
    Messaggi
    114

    Predefinito

    Per i radio il problema non si pone, il limite è sempre 1, cioè selezionando un altro radio dello stesso gruppo automaticamente si deseleziona il precedente.
    Per le check l'unico modo per porre un limite è farlo con i javascript.
    Basta creare una funzione su onClick di ogni check che controlla il numero di check selezionati e deseleziona l'ultimo selezionato in caso il limite sia stato superato.

    Es:

    ---------- Nella Form -----------
    <input type="check" name="check0" value="...." onClick="controllaLimite(0)">
    <input type="check" name="check1" value="...." onClick="controllaLimite(1)">
    <input type="check" name="check2" value="...." onClick="controllaLimite(2)">
    <input type="check" name="check3" value="...." onClick="controllaLimite(3)">
    .
    .
    .
    ecc..
    -------------------------------------

    -------------- Nel Js ----------------
    var selezionati = 0; // Contatore di check selezionati
    var max_selezionati = 5; // Numero massimo di check selezionabili

    function controllaLimite(num)
    {
    var oggetto = eval("document.nomeform.check"+num);
    if(oggetto.checked)
    selezionati++;
    else
    selezionati--;

    /* Controllo del superamento del limite */
    if(selezionati > max_selezionati)
    {
    /* Limite superato, deseleziono il check */
    oggetto.checked = false;
    selezionati--;
    }
    }
    -------------------------------------

    Prova così, non so se funziona.
    "Vuoi rendere impossibile per chiunque opprimere un suo simile? Allora, assicurati che nessuno possa possedere il Potere."
    - M. Bakunin -

  3. #3
    Ospite Guest

    Predefinito

    devi comunque anche controllare in php...
    for ($a=1,$b=0;$a<=10;$a++) {
    $check = 'check'.$a;
    if ($$check) $b++;
    }
    if ($b>=5) die("Troppi checkbox selezionati");

  4. #4
    lionalex non è connesso Utente attivo
    Data registrazione
    10-12-2002
    Messaggi
    446

    Predefinito

    Citazione Originalmente inviato da Camicio
    devi comunque anche controllare in php...
    for ($a=1,$b=0;$a<=10;$a++) {
    $check = 'check'.$a;
    if ($$check) $b++;
    }
    if ($b>=5) die("Troppi checkbox selezionati");
    Non ho capito molto bene questo codice.Potresti spiegarlo riga per riga? Conosco un po' il PHP ma non ho capito cosa fanno queste righe di codice
    Chi troppo vuole....vuole LionAlex...

  5. #5
    Ospite Guest

    Predefinito

    for ($a=1,$b=0;$a<=10;$a++) { //fa un ciclo dieci volte... ogni volta incrementa a di 1... inizialmente imposta b a 0
    $check = 'check'.$a; // dichiara che check è checkVALOREDIA... quindi ogni volta cambia valore
    if ($$check) $b++; //se check è true quindi il checkbox è con il visto incrementa il valore di b di 1
    }
    if ($b>=5) die("Troppi checkbox selezionati"); //se ci sono più o 5 checkbox selezionati (guardando il valore di b) ti esce dal programma dicendo Troppi checkbox selezionati

  6. #6
    lionalex non è connesso Utente attivo
    Data registrazione
    10-12-2002
    Messaggi
    446

    Predefinito

    ma check è una variabile del PHP o una variebile che devo crearmi io?
    Chi troppo vuole....vuole LionAlex...

  7. #7
    lionalex non è connesso Utente attivo
    Data registrazione
    10-12-2002
    Messaggi
    446

    Predefinito

    ho provato a fare come aveva detto SMILZO666 ed ho scritto così

    Codice:
    <form action="crea_formazione.php" method="post">
    <input type="checkbox" name="check0" value="1" onClick="controllaLimite(0)">Ciao<br>
    <input type="checkbox" name="check1" value="2" onClick="controllaLimite(1)">CIAO<br>
    <input type="checkbox" name="check2" value="3" onClick="controllaLimite(2)">Bye<br>
    <input type="checkbox" name="check3" value="4" onClick="controllaLimite(3)">hallo<br>
    </form>
    <script language="javascript">
    var selezionati = 0; // Contatore di check selezionati
    var max_selezionati = 2; // Numero massimo di check selezionabili
    
    function controllaLimite(num)
    {
       var oggetto = eval("document.nomeform.check"+num);
       if(oggetto.checked)
         selezionati++;
       else
         selezionati--;
    
       /* Controllo del superamento del limite */
       if(selezionati > max_selezionati)
       {
          /* Limite superato, deseleziono il check */
          oggetto.checked = false;
          selezionati--;
       }
    }
    </script>
    Però non funziona, dice che document.nomeform.check1 è nullo o non è un oggetto. Cosa ho sbagliato???
    Chi troppo vuole....vuole LionAlex...

  8. #8
    L'avatar di smilzo666
    smilzo666 non è connesso Utente
    Data registrazione
    22-09-2003
    Residenza
    La Capitale
    Messaggi
    114

    Predefinito

    <form action="crea_formazione.php" method="post">

    la form deve avere un nome che imposterai con name="nomedellaform"

    <form action="crea_formazione.php" method="post" name="nomedellaform">

    poi sostituisci nomeform con il nomedellaform che hai messo in name=""

    var oggetto = eval("document.nomeform.check"+num);

    se la form la chiami pippo devi mettere var oggetto = eval("document.pippo.check"+num);
    "Vuoi rendere impossibile per chiunque opprimere un suo simile? Allora, assicurati che nessuno possa possedere il Potere."
    - M. Bakunin -

  9. #9
    lionalex non è connesso Utente attivo
    Data registrazione
    10-12-2002
    Messaggi
    446

    Predefinito

    grazie mille, non sapevo che si potesse dare un nome anche ai FORM....cmq ora funziona. Un'ultima cosa, questo sistema è compatibile con tutti i BROWSER o può capitare che qualcuno non riesca ad usare il form???
    Chi troppo vuole....vuole LionAlex...

Regole di scrittura

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