Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di MM88
    Registrato dal
    Jun 2003
    Messaggi
    567

    [PHP + Javascript] Div a comparsa

    Ciao ragazzi,

    sto utilizzando questo javascript:

    codice:
     
    	function toggleLayer( whichLayer )
    {
      var elem, vis;
      if( document.getElementById ) // this is the way the standards work
        elem = document.getElementById( whichLayer );
      else if( document.all ) // this is the way old msie versions work
          elem = document.all[whichLayer];
      else if( document.layers ) // this is the way nn4 works
        elem = document.layers[whichLayer];
      vis = elem.style;
      // if the style.display value is blank we try to figure it out here
      if(vis.display==''&&elem.offsetWidth!=undefined&&elem.offsetHeight!=undefined)
        vis.display = (elem.offsetWidth!=0&&elem.offsetHeight!=0)?'block':'none';
      vis.display = (vis.display==''||vis.display=='block')?'none':'block';
    }
    e questa routine:

    codice:
    		$result=mysql_query("
    	      SELECT *
    		FROM tabella
    		ORDER BY nome ASC
    		");
    		
    						
    	      while ($row = mysql_fetch_array($result)){
    		  
    		  $nome = $row['nome'];
    		
       echo "<a href =\"javascript:toggleLayer('commentForm');\">$nome</a><div id=\"commentForm\">CIAO</div>";
        }

    Quando carico la pagina, mi vengono elencate tutte le righe presenti nella tabella e mi appare una serie di nomi come link, ma solo il primo $nome (il primo link prodotto) sembra essere seguito dal DIV
    "commentForm".

    Tutti i successivi link fanno apparire o scomparire sempre e solo il DIV posto sotto il primo risultato.

    Questo penso sia dovuto al fatto che tutti i div prodotti dalla routine hanno come id "commentForm".

    Come posso modificare la routine in modo da ottenere un DIV diverso per ogni link?

    Si potrebbe aggiungere un nome progressivo ai risultato PHP, ma non posso modificare il javascript.

    Qualcuno ha risolto un problema simile in qualche modo?


    grazie

  2. #2
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Codice PHP:

            $result
    =mysql_query("
              SELECT *
            FROM tabella
            ORDER BY nome ASC
            "
    );
            
                  
    $counter 0;        
              while (
    $row mysql_fetch_array($result)){
              
              
    $nome $row['nome'];
            
       echo 
    "<a href =\"java-script:toggleLayer('commentForm".$counter."');\">$nome</a><div id=\"commentForm".$counter."\">CIAO</div>";
       
    $counter++;
        } 

  3. #3
    Utente di HTML.it L'avatar di MM88
    Registrato dal
    Jun 2003
    Messaggi
    567
    Ciao, ti ringrazio per la risposta.

    Anche io avevo pensato ad un numero progressivo, perché così funzionerebbe.

    L'unico problema è che ora i DIV appaiono subito tutti. Caricata la pagina, appaiono già i DIV sotto ogni link.
    Andrebbe modificato anche il javascript (forse con un mysql_num_rows), ma non so in quale parte.


    grazie

  4. #4
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Vedi se così va bene...
    Codice PHP:

    $result
    =mysql_query("
              SELECT *
            FROM tabella
            ORDER BY nome ASC
            "
    );
            
                  
    $counter 0;        
              while (
    $row mysql_fetch_array($result)){
              
              
    $nome $row['nome'];
            
       echo 
    "<a href =\"java-script:toggleLayer('commentForm".$counter."');\">$nome</a><div id=\"commentForm".$counter."\" style='display:none;'>CIAO</div>";
       
    $counter++;
        } 
    Ora li vedi tutti perchè quasi sicuramente un css diceva a commentForm di non visualizzarsi, ho aggiunto lo stile in linea. Se vuoi che di default se ne visualizzi 1 basta che inserisci lo stile in una variabile che appunto, varia, al variare del valore del $conter.
    Spero che vada bene.
    Ciao

  5. #5
    Utente di HTML.it L'avatar di MM88
    Registrato dal
    Jun 2003
    Messaggi
    567
    Sì, infatti, c'era un CSS con display:none.

    va benissimo così, GRAZIE

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.