Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di ilcollaboratore
    Registrato dal
    Oct 2013
    residenza
    Toscana
    Messaggi
    43

    Come rendere selezionate checkbox

    Ciao ragazzi, ho una tabella che cambia valori in base a che checkbox viene selezionata premendo sul submit del form. Di default non ho reso selezionate le checkbox nel html, quindi al refresh mi si deselezionano tutte anche se i valori della tabella vanno bene, per questo volevo sapere se era possibile selezionare al caricamento della pagina le checkbox selezionate prima dell'invio del form.
    E' possibile utilizzando PHP? Oppure ci sono altre soluzioni?

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao, certo che possibile.
    Supponendo che la tua checkbox ha come nome "test"
    codice:
    <input name="test"......
    Al submit della form se checkata avrai
    codice:
    $_POST['test'] o $_GET['test']
    con valore relativo.

    Pre flaggare in partenza la check

    codice:
    <input type="checkbox" name="test" value="VALORE" <?php if(isset($_POST['test'])){ echo 'checked'; } > ?>

  3. #3
    Utente di HTML.it L'avatar di ilcollaboratore
    Registrato dal
    Oct 2013
    residenza
    Toscana
    Messaggi
    43
    Il problema è che così me le seleziona tutte, visto che prende i valori di altri check selezionati...
    E se provo a mettere un name diverso ogni checkbox? Tipo test1, test2, test3... e su ogni script php ci metto il name di quell'input. Esempio:
    codice:
    <input type="checkbox" value="VALORE" name="ruota1" <?php if(isset($_POST['ruota1'])){ echo 'checked'; } ?> />
    <input type="checkbox" value="VALORE" name="ruota2" <?php if(isset($_POST['ruota2'])){ echo 'checked'; } ?> />

  4. #4
    Utente di HTML.it L'avatar di ilcollaboratore
    Registrato dal
    Oct 2013
    residenza
    Toscana
    Messaggi
    43
    Ho provato varie volte, e il name degli input lo devo mettere per forza come name="ruota[]" perché altrimenti non mi crea l'array con i valori delle check selezionate. Quindi se poi faccio isset($_POST['ruota']) mi si selezionano tutte. Ho provato in diversi modi, ma anche se metto un numero diverso al name degli input poi non mi crea l'array. Non so proprio come fare
    Forse con javascript c'è verso

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Un esempio. Il file deve chiamarsi test303.php

    Codice PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Untitled</title>
    </head>
    <body>
    <?php 
    //----- Premetto che ho 6 ruote
    $maxRuote 6;
    $arrRuota = array();
    if (isset(
    $_POST['submitBtn']) && isset($_POST['ruota'])) {
      if (
    $_POST['submitBtn'] == "Sottomettere") {
      
    //----- stampa a schermo le ruote cliccate e solo quelle - il metodo post 
      //      5 passa quelle non cliccate
      
    $submitButton $_POST['submitBtn'];
      
    $arrRuota     $_POST['ruota'];
      foreach (
    $arrRuota as $key => $value) {
         print 
    "Ruota $key ha il valore $value.<br/>";
      } 
    // foreach ($arrRuota as $key => $value)
      
    print "<br/>";
      
    //----- stampa a schermo lo stato di tutte le ruote 
      
    for ($i=1;$i<=$maxRuote;$i++) {
       if (isset(
    $arrRuota[$i])) {
        print 
    "Ruota $i è stata cliccata<br/>";
      } else {
        
    $arrRuota[$i] = 'off';
        print 
    "Ruota $i non è stata cliccata<br/>";
      } 
    // if (isset($arrRuota[$i]))
      
    // for ($i=1;$i<=6;$i++)
     
    // if ($_POST['submitBtn'] == "Sottomettere")
    } else {
      if (! isset(
    $_POST['ruota'])) {
      
    //----- stampa a schermo lo stato di tutte le ruote 
      
    for ($i=1;$i<=$maxRuote;$i++) {
      
    $arrRuota[$i] = 'off';
      print 
    "Ruota $i non è stata cliccata<br/>";
      } 
    // for ($i=1;$i<=6;$i++) 
      
     
    // if (! isset($_POST['ruota'])) 
    // if (isset($_POST['submitBtn']) && isset($_POST['ruota']))
     
    ?>
    <form action="test303.php" method="post"><?php 
     
    for ($i=1;$i<=$maxRuote;$i++) {
      
    $checked $arrRuota[$i] == 'on' "checked" "";?>
      <input type="checkbox" <?php print $checked;?> name="ruota[<?php print $i;?>]"/>Ruota <?php print $i;?><br /><?php
     
    // for ($i=1;$i<=6;$i++) ?>
      <input type="submit" name="submitBtn" value="Sottomettere" />
    </form>
     
    </body>
    </html>
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  6. #6
    Utente di HTML.it L'avatar di ilcollaboratore
    Registrato dal
    Oct 2013
    residenza
    Toscana
    Messaggi
    43
    Grazie mille a tutti, ho risolto e funziona

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.