Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Jquery show e hide su più elementi

    Sto cominciando a studiare Jquery... sopratutto per 2 animazioni... e stavo impostando lo show e l'hide... funziona!

    l'unico problema sta nel fatto che dove eseguo la funzione è un elenco... non mi funziona su tutti gli id che assegno al div ma solo al primo... come faccio per fare in modo "pulsante" corrisponda ad un div... contate che l'elenco viene generato da php via lettura da Mysql quindi è tutto dinamico

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Posta il link alla pagina pubblica (tuosito.xxxx/paginademo.xxxx) così ci si fa un idea della struttura e della logica.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Non ho una pagina pubblica sto facendo tutto da locale... E purtroppo non ho il sito qua...

    Comunque per spiegare più o meno il progetto...

    |campo1 +| |campo2 +| |campo3 +|

    OK diciamo che ho vari campi cosi... Il "+" e il tastino che apre al di sotto un rettangolo.

    Ora io per creare la pagina, ho un ciclo while per stampare i dati da MySQL richiamati dalla query. Quindi ogni campo viene richiamato dallo stesso DIV che ha quindi lo stesso id.
    Ora dal poco che ne so io per la funzione show e hide creo uno script:

    $(".apri").click(
    function(){
    $("#camponascosto").show();

    Dove .apri è la classe del +
    E dove #camponascosto è l'id del DIV nascosto

    Funziona ma solo con il primo DIV (cosa strana a mio avviso... Perche pensavo funzionasse con tutti simultaneamente).
    Avevo pensato di fare .apri1 con #camponascosto1, .apri2 con #camponascosto2 e cosi via ma a questo punto dovrei fare 3000 classi nel CSS! E non penso sia la soluzione più adatta

    Spero di essere stato più chiaro... Domani quando mi ci rimetto all'opera al massimo metto una foto

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    Gli id sono univoci.

    Quindi in una pagina non ci possono essere due #camponascosto, devono essere .camponascosto
    No

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    campo viene richiamato dallo stesso DIV che ha quindi lo stesso id gli id devono essere univoci (altrimenti identifica solo il primo camponascosto) o rendi gli id progressivi oppure usi una classe.

    P.S. Ti comunico che esistono anche hosting free tipo altervista.org
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Grazie mille per le informazioni effettivamente non ci pensavo alla questione degli id e le classi.

    Ora giusto per avere le idee chiare al 100%... L'ID è univoco, inteso che c'è ne deve essere per forza uno per tutta la pagina quindi.... Tutto quello che si ripete allora uso le classi?
    E poi tanto ora faccio le modifiche e lo provo ma se in questo caso come lo specifico che al bottone corrisponde il DIV di sotto e non quelle con le classi uguali? Fa tutto javascript, css?

  7. #7
    Ok come pensavo ora diciamo che funziona... ma apre e chiude tutti i div, come posso fare però per assegnarne un univoco per ogni div?

  8. #8
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Complessa spiegare ad un profano la strada "forse" più semplice assegnare id del record id1 id2 id3 ai div (nascosti) etc... con php e passare lo stesso id alla funzione apri(id1) in linea onclick="apri('id1')"
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    Io mi terrei sulle classi e sfrutterei lbene il selettore di jquery...
    Puoi far vedere la struttura html?
    No

  10. #10
    Sisi eccolo qua, parto prima con la parte Javascript, non che sia chissà cosa
    codice:
    <script type="text/javascript">
               $(document).ready(function() {
     
                $(".apri").click(
                function(){
                $(".containereditor").show("fast"); 
                });
                
                $(".chiudi").click(
                function(){
                $(".containereditor").hide("fast"); 
                });
             });
             </script>
    E questo è il PHP
    codice:
    $querycompany="SELECT * FROM compagnia ORDER BY nome LIMIT ".$startcompany.",9";
                   $resultcompany=mysqli_query($conn,$querycompany);
                   while($company=mysqli_fetch_array($resultcompany,MYSQLI_ASSOC)){
                   echo "<div id='containerallcompanyeditor'>";
                      echo "<div class='containercompany' >";
                      echo "<div id='imgcompany' style='background: url(".$company["logo"].") no-repeat center; background-size:281px; background-color: #FFF;'></div>";
                         echo "<div id='companydati'>";
                         $querynazione="SELECT bandiera FROM nazioni WHERE ID='".$company["nazionalita"]."'";
                         $resultnazione=mysqli_query($conn,$querynazione);
                         $nazione=mysqli_fetch_array($resultnazione,MYSQLI_ASSOC);
                         echo "<img src='".$nazione["bandiera"]."'><a href='company.php?id=".$company["ID"]."'>";
                         echo "<b>".$company["nome"]."</b>";   
                         echo "</a><div style='text-align:center; float: right;'><b><a class='apri'>+</a></b></div></div>";//apertura della parte nascosta
                      echo "</div>";
                      //qua inizia la parte nascosta
                      echo "<div class='containereditor' >";
                         $queryeditor="SELECT ID,nome,logo FROM editore WHERE compagnia='".$company["ID"]."' ORDER BY nome ";
                         $resulteditor=mysqli_query($conn,$queryeditor);
                         echo "<div id='allcompanyeditordatacontainer'>";
                         while($editor=mysqli_fetch_array($resulteditor,MYSQLI_ASSOC)){
                            echo "<div id='allcompanyeditordata'>";
                            echo "<div style='float:left; width:125px;'><a href='editor.php?id=".$editor["ID"]."'><img src='".$editor["logo"]."'></a></div>";
                            echo "<div style='float:left; margin-top: 10px;'><a href='editor.php?id=".$editor["ID"]."'>".$editor["nome"]."</a></div>";
                            echo "</div>";   
                         }
                         echo "<div id='allcompanyeditordata'>";
                         echo "<b><a class='chiudi'>Chiudi</a></b>";//chiusura della parte nascosta
                         echo "</div>";
                         echo "</div>";
                         
                      echo "</div>";
                   echo "</div>";
                   }
    Ok questo è la parte interessata diciamo.

    Ora vi ringrazio per tutti i consigli che mi state dando, come dicevate prima, non pretendo mi date la soluzione al codice, sia chiaro... mi serve solo avere l'idea logica "migliore" per come fare, poi mi cerco il tutto io.

    Come pensavo comunque l'idea id1 id2 id3 può essere giusta, però che io sappia non c'è un modo ricorsivo per farlo (a meno che non comincio a creare uno style in php dentro ad un ciclo).
    Però cercando una soluzione ho provato a girare sui vari siti che lo fanno, ora non so come lo eseguano, ma su Facebook per esempio ho visto che ogni post ha il tastino di modifica che se cliccato apre una finestrella, più o meno quello che voglio fare io. Andando a dare una sbirciatina al codice della pagina, ho notato che è sempre la stessa classe.

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.