Visualizzazione dei risultati da 1 a 4 su 4

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2022
    Messaggi
    84

    Problema checkbox da selezionare e javascript

    Buonasera,

    ho 3 div che vengono nascosti appena si carica la pagina. Questi 3 div contengono circa una decina di checkbox ognuno. In pratica i 3 div sono 3 sezioni del sito.

    codice:
        <script>document.getElementById("content_1").style.display = "none";</script>
        <script>document.getElementById("content_2").style.display = "none";</script>
        <script>document.getElementById("content_3").style.display = "none";</script>
    Tramite dei pulsanti ed una funzione javascript, nascondo tutti i div e mostro solo quello che mi interessa. Fin qui tutto bene, ma poi ho deciso di selezionale (tramite javascript) anche alcuni dei checkbox contenuti e quindi sono iniziati i problemi.

    codice:
    function handleFileInput() {                
                    var file = this.files[0];
                    var filename = file.name;
                    var stringa = filename.toUpperCase();
                    
                    var checks_1 = document.getElementsByName("lista_check_1[]");
                    for (i = 0; i < checks_1.length; i++){    
                        checks_1[i].checked = false;                
                    }
                    
                    var checks_2 = document.getElementsByName("lista_check_2[]");
                    for (i = 0; i < checks_2.length; i++){    
                        checks_2[i].checked = false;                
                    }
                    
                                    var checks_3 = document.getElementsByName("lista_check_3[]");
                    for (i = 0; i < checks_3.length; i++){    
                        checks_3[i].checked = false;                
                    }
    
    
    
                    document.getElementById("content_1").style.display = "none";
                    document.getElementById("content_2").style.display = "none";
                    document.getElementById("content_3").style.display = "none";
                     
                    if (stringa.search("PRIMO") > 0) {
                        
                        document.getElementById("content_1").style.display = "block";
                        
                        document.getElementById("n_pazienti_x_comune").checked = true;
                        document.getElementById("err_prof_trat").checked = true;
                        document.getElementById("prog_duplicate").checked = true;
                        
                        return;
                        
                    } else if (stringa.search("SECONDO") > 0) {
                        
                        document.getElementById("content_2").style.display = "block";
    
    
                        document.getElementById("n_pazienti_x_comune").checked = true;
                        document.getElementById("err_prof_trat").checked = true;
                        document.getElementById("prog_duplicate").checked = true;
                        document.getElementById("reg_duplicate").checked = true;
                        document.getElementById("no_programmati").checked = true;
                        document.getElementById("diff_giorni").checked = true;
                        document.getElementById("percentuale_reg").checked = true;
                        
                        return;
                        
                    }  else if (stringa.search("TERZO") > 0) {
                        
                        document.getElementById("content_3").style.display = "block";
    
                                            document.getElementById("nomi").checked = true;
                        document.getElementById("cognomi").checked = true;
                        document.getElementById("paesi").checked = true;
    
    
    
                        return;
                        
                    } else {
                        
                        return;
                        
                    }
                }
    Fino a quando cerco di selezionare solo i checkbox delle prime due sezioni funziona tutto correttamente, altrimenti non solo il div non viene visualizzato, ma mi compaiono una serie di errori nella pagina php. Su questo forum ho letto che a volte javascript fa i capricci con i checkbox da selezionare e deselezionare tramite codice. Altra cosa importante è che escludendo il codice incriminato (tramite commento), la pagina continua a darmi gli stessi errori nel php. In pratica per far funzionare tutto normalmente, devo calcellare il codice che da "fastidio", quindi mi chiedevo se c'è un altro modo per selezionare i checkbox, che tra l'altro sono contenuti in 3 array.

    grazie
    Ultima modifica di jip77; 30-01-2023 a 17:32

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Sei sicuro che il nome delle checkbox siano validi?
    (ad esempio, lista_check_2[] con le parentesti quadre non mi rende tranquillo...)
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2022
    Messaggi
    84
    Quote Originariamente inviata da alka Visualizza il messaggio
    Sei sicuro che il nome delle checkbox siano validi?
    (ad esempio, lista_check_2[] con le parentesti quadre non mi rende tranquillo...)
    Buongiorno,
    per evitare di inviare una trentina di singole variabili ad una funzione contenuta in un'altra pagina php, ho inserito lo stato dei checkbox in 3 array (quante sono le sezioni). Se non sbaglio proprio nel forum avevo letto che bastava mettere le parentesi quadre ed in effetti funziona, solo che ad un certo punto fa i capricci e non riesco ad andare oltre il primo div.

    codice:
    <tr>
           <td align='center' bgcolor='lavender' height='25'>
           <input type="checkbox" name="lista_check_2[]" value="reg_duplicate" id="reg_duplicate"/>
           </td>
    </tr>
    <tr>
           <td align='center' bgcolor='lavender' height='25'>
           <input type="checkbox" name="lista_check_2[]" value="no_programmati" id="no_programmati"/>
           </td>
    </tr>
    In effetti, potrei ridurre i tre array in uno solo, ad esempio lista_checks[] e vedere se risolvo, però avrei voluto anche capire il "perché" del problema
    Ultima modifica di jip77; 31-01-2023 a 08:31

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2022
    Messaggi
    84
    Alla fine ho risolto. L'errore capitava solo quando aumentava il numero di checkbox da spuntare. In base all'errore mostrato (nel codice che serve per la sessione login), ho fatto qualche prova e sono riuscito a risolvere. Mi è bastato spostare

    codice:
    require '_____inc.password_protect.php';
    tra i primi righi della pagina. In questo file, il rigo incriminato era questo:

    codice:
    setcookie("utente", $_POST['access_login'], $timeout, '/');

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.