Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    111

    Ripristinare lo stile display

    ciao a tutti, sono ore giorni che mi sta facendo impazzire questo piccolo script e non vuole funzionare...
    vengo al punto: ho fatto uno script (quello funziona ) che in una form con più select mi nasconde la voce che ho selezionato in un'altra select, con la funzione display= 'none';
    non vi posto tutto il codice perchè è troppo lungo.

    es
    codice:
     <select ... onchange='nascondi(this.value)'>
      <option  value=''></option>
     <option id='1' value='ciao'>ciao</option>
    <option id='2' value='heila'>heila</option>
    <option id='2' value='come'>come</option>
    <option id='3' value='mondo'>mondo</option>
    </select>
    se scelgo la prima su tutte le altre quella voce la nascondo senza lasciare traccia e fino a qui tutto ok, ora veniamo al mio problema e cioè ipotesi che sbaglio a inserire un nome questo comunque me lo nasconde in tutti gli altri select a me servirebbe uno script che mi resetta la form (e questo c'è l'ho) ma anche che mi ripristina i display da none a block, e questo che non riesco a fare e non capisco perchè non va:

    ho provato con un for ma nullla, però nel mio pensiero ho un dubbio:
    ho 20 id per select e al max ho 20 (il minimo è di 9 select) select per un tot di 400 id
    l'esempio sopra non centra nullo lo fatto solo per far capire... le mie select sono generate da una query mysql e non è detto che ci sono tutte e 20 le voci c'è ne possono essere anche 9
    non vorrei che quelle che non vede non le salta e mi si blocca al primo colpo... ovviamente è solo un ipotesi devo fare ancora prove, cmq se qualcuno mi vuole dare una mano è ben accetto qualsiasi suggerimento!!!

    un saluto a tutti!!!

    p.s. e buona Pasqua!!!!

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Non e' che ci possiamo reinventare tutto, posta almeno il codice degli script
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    111
    Hai ragione però vi posto solo una minima parte perchè è lungo....

    Codice PHP:
    ...
    <?php
    // script per richiamare le squadre
    ?>
    <script type="text/javascript">

    // script di prova per ripristinare il tutto
    function cancella(){
        cancella1();
        cancella2();
        
        
        
    }
    </script>
    <script type="text/javascript">
    function cancella1(){
       document.getElementById("gironi").reset();
       
     

        document.getElementById("op1").style.display = 'block';
          document.getElementById("op2").style.display = 'block';
           document.getElementById("op3").style.display = 'block';
            document.getElementById("op4").style.display = 'block';
             document.getElementById("op5").style.display = 'block';
              document.getElementById("op6").style.display = 'block';
               document.getElementById("op7").style.display = 'block';
                document.getElementById("op8").style.display = 'block';
                 document.getElementById("op9").style.display = 'block';
                  document.getElementById("op10").style.display = 'block';
                  document.getElementById("op11").style.display = 'block';
                  document.getElementById("op12").style.display = 'block';
                  document.getElementById("op13").style.display = 'block';
                  document.getElementById("op14").style.display = 'block';
                  document.getElementById("op15").style.display = 'block';
                  document.getElementById("op16").style.display = 'block';
                  document.getElementById("op17").style.display = 'block';
                  document.getElementById("op18").style.display = 'block';
                  document.getElementById("op19").style.display = 'block';
                  document.getElementById("op20").style.display = 'block'; 
                  
     
     } 
    </script>
    <script type="text/javascript">
    function cancella2(){
       
       
     

          document.getElementById("op21").style.display = 'block';
          document.getElementById("op22").style.display = 'block';
           document.getElementById("op23").style.display = 'block';
            document.getElementById("op24").style.display = 'block';
             document.getElementById("op25").style.display = 'block';
              document.getElementById("op26").style.display = 'block';
               document.getElementById("op27").style.display = 'block';
                document.getElementById("op28").style.display = 'block';
                 document.getElementById("op29").style.display = 'block';
                  document.getElementById("op30").style.display = 'block';
                  document.getElementById("op31").style.display = 'block';
                  document.getElementById("op32").style.display = 'block';
                  document.getElementById("op33").style.display = 'block';
                  document.getElementById("op34").style.display = 'block';
                  document.getElementById("op35").style.display = 'block';
                  document.getElementById("op36").style.display = 'block';
                  document.getElementById("op37").style.display = 'block';
                  document.getElementById("op38").style.display = 'block';
                  document.getElementById("op39").style.display = 'block';
                  document.getElementById("op40").style.display = 'block';
                  
     
     } 
    </script>

    <script type="text/javascript">
    /* script prima scelta */
    function prima_scelta(scelta){
        
        var sq1 = "<?php echo "$squdraxjs[0]"?>";
        var sq2 = "<?php echo "$squdraxjs[1]"?>";
        var sq3 = "<?php echo "$squdraxjs[2]"?>";
        var sq4 = "<?php echo "$squdraxjs[3]"?>";
        var sq5 = "<?php echo "$squdraxjs[4]"?>";
        var sq6 = "<?php echo "$squdraxjs[5]"?>";
        ...
        var sq20 = "<?php echo "$squdraxjs[19]"?>";


    if(scelta == sq1)

    {
     document.getElementById("21").style.display = 'none';
       document.getElementById("41").style.display = 'none';
       document.getElementById("81").style.display = 'none';
        document.getElementById("101").style.display = 'none';
        document.getElementById("121").style.display = 'none';
     document.getElementById("161").style.display = 'none';
        document.getElementById("181").style.display = 'none';
       document.getElementById("201").style.display = 'none';
      if (<?php echo "$count_squadra"?> > 9){
          document.getElementById("61").style.display = 'none';
           document.getElementById("141").style.display = 'none';
        document.getElementById("221").style.display = 'none';
      }
       if (<?php echo "$count_squadra"?> > 12){
          document.getElementById("241").style.display = 'none';
           document.getElementById("261").style.display = 'none';
        document.getElementById("281").style.display = 'none';
         document.getElementById("301").style.display = 'none';
           document.getElementById("321").style.display = 'none';
        document.getElementById("341").style.display = 'none';
          document.getElementById("361").style.display = 'none';
        document.getElementById("381").style.display = 'none';
      }
        }
    if(scelta == sq2)

    {
     document.getElementById("22").style.display = 'none';
       document.getElementById("42").style.display = 'none';
        document.getElementById("82").style.display = 'none';
        document.getElementById("102").style.display = 'none';
        document.getElementById("122").style.display = 'none';
     document.getElementById("162").style.display = 'none';
        document.getElementById("182").style.display = 'none';
       document.getElementById("202").style.display = 'none';
      if (<?php echo "$count_squadra"?> > 9){
          document.getElementById("62").style.display = 'none';
           document.getElementById("142").style.display = 'none';
        document.getElementById("222").style.display = 'none';
      }
       if (<?php echo "$count_squadra"?> > 12){
          document.getElementById("242").style.display = 'none';
           document.getElementById("262").style.display = 'none';
        document.getElementById("282").style.display = 'none';
         document.getElementById("302").style.display = 'none';
           document.getElementById("322").style.display = 'none';
        document.getElementById("342").style.display = 'none';
          document.getElementById("362").style.display = 'none';
        document.getElementById("382").style.display = 'none';
      }
        }
        if(scelta == sq3)

    {
     document.getElementById("23").style.display = 'none';
       document.getElementById("43").style.display = 'none';
        document.getElementById("83").style.display = 'none';
        document.getElementById("103").style.display = 'none';
        document.getElementById("123").style.display = 'none';
     document.getElementById("163").style.display = 'none';
        document.getElementById("183").style.display = 'none';
       document.getElementById("203").style.display = 'none';
      if (<?php echo "$count_squadra"?> > 9){
          document.getElementById("63").style.display = 'none';
           document.getElementById("143").style.display = 'none';
        document.getElementById("223").style.display = 'none';
      }
       if (<?php echo "$count_squadra"?> > 12){
          document.getElementById("243").style.display = 'none';
           document.getElementById("263").style.display = 'none';
        document.getElementById("283").style.display = 'none';
         document.getElementById("303").style.display = 'none';
           document.getElementById("323").style.display = 'none';
        document.getElementById("343").style.display = 'none';
          document.getElementById("363").style.display = 'none';
        document.getElementById("383").style.display = 'none';
      }
        }
        ...

    }

    </script>
    </head>
    <body>
    ...
     <form name="gironi" id="gironi" action="" method="post">

    <?php
                                    
    include "config.php";   
                                    include 
    "connessione.php"
                                    echo 
    "<tr><td align=\"center\">A</td><td align=\"center\">";
                                    
    $sql1 "SELECT squadra,stato FROM squadre WHERE anno=$anno";
                                     
    $ris1 mysql_query($sql1$db) or die('QUERY SQL FALLITA');
                                    
    $conta_sq1 1;
                                    
                                    echo 
    "<select name='squadra1' onchange='prima_scelta(this.value)'>";
                                    echo 
    "<option value=''></option>";
                                      while (
    $row1 = @mysql_fetch_array($ris1)){
                                    
                                    
    $squdra $row1['squadra'];
                                    
    $stato $row1['stato'];
                                         if (
    $stato == on){
    echo 
    "<option id='$conta_sq1' value='$squdra'>$squdra</option>";

    $conta_sq1++;
      }
     }
    echo 
    "</td></select>";
    //fine primo
    $sql2 "SELECT squadra,stato FROM squadre WHERE anno=$anno";
                                     
    $ris2 mysql_query($sql2$db) or die('QUERY SQL FALLITA');
                                    
    $conta_sq2 21;
                                    echo 
    "<td align=\"center\"><select name='squadra2' onchange='seconda_scelta(this.value)'>";
                                    echo 
    "<option value=''></option>";
                                      while (
    $row2 = @mysql_fetch_array($ris2)){
                                    
                                    
    $squdra $row2['squadra'];
                                    
    $stato $row2['stato'];
                                         if (
    $stato == on){

    echo 
    "<option id='$conta_sq2' value='$squdra'>$squdra</option>"//modifica

    $conta_sq2++;
     }
      }
    echo 
    "</td></select>";
    //fine secondo
                                   
    $sql3 "SELECT squadra,stato FROM squadre WHERE anno=$anno";
                                     
    $ris3 mysql_query($sql3$db) or die('QUERY SQL FALLITA');
                                    
    $conta_sq3 41;
                                    echo 
    "<td align=\"center\"><select name='squadra3' onchange='terza_scelta(this.value)'>";
                                    echo 
    "<option value=''></option>";
                                      while (
    $row3 = @mysql_fetch_array($ris3)){
                                    
                                    
    $squdra $row3['squadra'];
                                    
    $stato $row3['stato'];
                                         if (
    $stato == on){

    echo 
    "<option id='$conta_sq3' value='$squdra'>$squdra</option>";

    $conta_sq3++;
     }
    }
    echo 
    "</td></select>";
    //fine terzo
    // inizio controllo per 4 casella

    if ($cisono 9){
    ...
    }
    // fine 4 casella
    // secondo girone
    ...
    echo 
    "<tr><td colspan='5' align=\"center\"><input type=\"submit\" value=\"Invia\" />&nbsp<input type=\"button\" value=\"Cancella\" onclick=\"cancella()\" /></td></tr>";    
    ...
    </
    body>
    </
    html>
    ho tolto via il delle parti perchè il msg era troppo lungo cmq ci sono altre 4 sequenze uguali... come puoi vedere lo script che mi nasconde quello che scelgo non è ancora completato ma funziona... ma non riesco a fare il contrario...
    ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    111
    Come non detto ci sono riuscito con un ciclo for... ho calcolato quanti nomi ci sono sul db e poi faccio un ciclo for per solo quei nomi e ho aggiunto alla option il tag style="display:block"


    es:
    Codice PHP:
    <?php

                                    
                                    
                                    $annoxj 
    $_POST["anno"];
                                    if (!isset(
    $annoxj)) die ("Manca l'anno da inserire 1");
                                    
                                    include 
    "config.php";
                                       
                                    include 
    "connessione.php"
                                    
                                    
    $sql "SELECT squadra,stato FROM squadre WHERE anno=$annoxj";
                                    
    $ris mysql_query($sql$db) or die('QUERY SQL FALLITA');
                                    
    $count_squadra =0;
                                     while (
    $row = @mysql_fetch_array($ris)){
                                    
                                    
    $statocontr $row['stato'];
                                         if (
    $statocontr == on){
                                    
    $squdraxjs[$count_squadra] = $row['squadra'];
                                    
                                    
    $count_squadra++;
                                    
                                      }
                                     }
                                    
                                     
    ?>

    <script type="text/javascript">
    function cancella(){
       document.getElementById("gironi").reset();
       
        var squadre = <?php echo "$count_squadra"?>;
        var squadre2 = (squadre + 20);
        var squadre3 = (squadre + 40);
        var squadre4 = (squadre + 60);
        var squadre5 = (squadre + 80);
        var squadre6 = (squadre + 100);
        var squadre7 = (squadre + 120);
        var squadre8 = (squadre + 140);
        var squadre9 = (squadre + 160);
        var squadre10 = (squadre + 180);
        var squadre11 = (squadre + 200);
        var squadre12 = (squadre + 220);
        var squadre13 = (squadre + 240);
        var squadre14 = (squadre + 260);
        var squadre15 = (squadre + 280);
        var squadre16 = (squadre + 300);
        var squadre17 = (squadre + 320);
        var squadre18 = (squadre + 340);
        var squadre19 = (squadre + 360);
        var squadre20 = (squadre + 380);
        
        
        //document.write("ci sono " + squadre3);
        for (var x = 1; x <= squadre; x++){
             document.getElementById(x).style.display = 'block';
        }
        for (var x = 21; x <= squadre2; x++){
             document.getElementById(x).style.display = 'block';
        }
        for (var x = 41; x <= squadre3; x++){
             document.getElementById(x).style.display = 'block';
        }
        for (var x = 61; x <= squadre4; x++){
             document.getElementById(x).style.display = 'block';
        }
        for (var x = 81; x <= squadre5; x++){
             document.getElementById(x).style.display = 'block';
        }
        for (var x = 101; x <= squadre6; x++){
             document.getElementById(x).style.display = 'block';
        }
        for (var x = 121; x <= squadre7; x++){
             document.getElementById(x).style.display = 'block';
        }
        for (var x = 141; x <= squadre8; x++){
             document.getElementById(x).style.display = 'block';
        }
        for (var x = 161; x <= squadre9; x++){
             document.getElementById(x).style.display = 'block';
        }
        for (var x = 181; x <= squadre10; x++){
             document.getElementById(x).style.display = 'block';
        }
        for (var x = 201; x <= squadre11; x++){
             document.getElementById(x).style.display = 'block';
        }
        for (var x = 221; x <= squadre12; x++){
             document.getElementById(x).style.display = 'block';
        }
        for (var x = 241; x <= squadre13; x++){
             document.getElementById(x).style.display = 'block';
        }
        for (var x = 261; x <= squadre14; x++){
             document.getElementById(x).style.display = 'block';
        }
        for (var x = 281; x <= squadre15; x++){
             document.getElementById(x).style.display = 'block';
        }
        for (var x = 301; x <= squadre16; x++){
             document.getElementById(x).style.display = 'block';
        }
        for (var x = 321; x <= squadre17; x++){
             document.getElementById(x).style.display = 'block';
        }
        for (var x = 341; x <= squadre18; x++){
             document.getElementById(x).style.display = 'block';
        }
        for (var x = 361; x <= squadre19; x++){
             document.getElementById(x).style.display = 'block';
        }
        for (var x = 381; x <= squadre20; x++){
             document.getElementById(x).style.display = 'block';
        }



    alert("Il form è stato resettato e le squadre sono state ripristinate!!!");

     } 
    </script>
    ...
    echo "<option id='$conta_sq20' value='$squdra' style=\"display:block\">$squdra</option>";
    ...
    cosi funziona!!!

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Permettimi di meravigliarmi... gli ID non possono essere numerici, forse funziona per qualche arcana e fortunosa combinazione... usa degli id composti da almeno una lettera

    ... id="a1" ... id="a99" ...

    e poi:

    document.getElementById("a"+x). ...
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    111
    ok eseguirò dei test... che gli id non possono essere numerici sinceramente non lo sapevo
    in questo forum non si finisce mai di imparare!!!

    grazie

    p.s. : comunque all'inizio avevo messo le lettere "op" insieme al numero ma non funzionava... a forza di modificarlo avrò toccato dove non dovevo!!!

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.