Partage
  • Partager sur Facebook
  • Partager sur Twitter

Jquery et simple tab

Petite modif que je n'arrive pas a faire

    26 juillet 2011 à 20:01:27

    Bonjour a tous.. voila j'utilise cet effet la:
    http://www.htmldrive.net/items/show/54 [...] -w-CSS-jQuery

    et j'ai un soucis avec cette partie:

    <script type="text/javascript">
    
    $(document).ready(function() {
    
    	//Default Action
    	$(".tab_content").hide(); //Hide all content
    	$("ul.tabs li:first").addClass("active").show(); //Activate first tab
    	$(".tab_content:first").show(); //Show first tab content
    	
    	//On Click Event
    	$("ul.tabs li").click(function() {
    		$("ul.tabs li").removeClass("active"); //Remove any "active" class
    		$(this).addClass("active"); //Add "active" class to selected tab
    		$(".tab_content").hide(); //Hide all tab content
    		var activeTab = $(this).find("a").attr("href"); //Find the rel attribute value to identify the active tab + content
    		$(activeTab).fadeIn(); //Fade in the active content
    		return false;
    	});
    
    });
    </script>
    


    J'aimerai ajouter une condition:

    if(isset($_GET['cat']))
    //On commence avec le tab du get cat

    exemple :
    Index.php?cat=tab1

    on commence avec la tab1 active

    index.php?cat=tab2
    on commence avec la tab2 active...

    Merci...
    • Partager sur Facebook
    • Partager sur Twitter
      26 juillet 2011 à 21:33:02

      Salut,

      Tu attribues un id unique à chacun de tes onglets. Ensuite tu gères ça comme ça dans ton code.
      <?php
      $tActive = (isset($_GET["cat"])) ? $_GET["cat"] : "tab1";
      ?>
      
      <script type="text/javascript">
      
      $(document).ready(function() {
      
      	//Default Action
      	$(".tab_content").hide(); //Hide all content
      	$("ul.tabs #<?php echo $tActive; ?>").addClass("active").show(); //Activate first tab
      	$(".tab_content:first").show(); //Show first tab content
      	
      	//On Click Event
      	$("ul.tabs li").click(function() {
      		$("ul.tabs li").removeClass("active"); //Remove any "active" class
      		$(this).addClass("active"); //Add "active" class to selected tab
      		$(".tab_content").hide(); //Hide all tab content
      		var activeTab = $(this).find("a").attr("href"); //Find the rel attribute value to identify the active tab + content
      		$(activeTab).fadeIn(); //Fade in the active content
      		return false;
      	});
      
      });
      </script>
      


      Enfin j'ai pas vraiment regarder le script en détail mais tu devrait pouvoir adapter l'idée facilement.

      Bonne soirée! :)


      EDIT : Le must ce serait même de générer tes tabs en php aussi via un array comme ça tu peux vérifier que le tab existe bien :p
      <?php
      $tabs = array("Category", "Catharsis", "Catheter", "Catastrophe");
      
      $li = "";
      foreach($tabs as $k){
      $li .= "<li id=\"".$k."\">".$k."</li>"
      }
      
      $tActive = (isset($_GET["cat"]) && in_array($_GET["cat"], $tabs)) ? $_GET["cat"] : reset($tabs);
      ?>
      
      • Partager sur Facebook
      • Partager sur Twitter
        27 juillet 2011 à 10:21:32

        Merci ton truc m'a mis sur la piste et finalement je travaille avec une variable de sessions, je sais pas si c'est le top??

        exemple:

        monsite.com/messagerie-privee -> index.php?page=redirection_zone_privee&cat=messagerie

        De la je fais une variable de session

        <?php $_SESSION['section_zone_privee'] = 'messagerie'; ?>
        


        et puis j'ai juste remplacer ta condition:

        <?php
        $tActive = (isset($_GET["cat"])) ? $_GET["cat"] : "tab1";
        ?>
        


        par

        <?php
        $tActive = (isset($_SESSION['section_zone_privee'])) ? $_SESSION['section_zone_privee'] : "tab1";
        ?>
        


        Maintenant j'aimerai savoir si c'est vraiment top ou pas???

        sachant que tous mes liens sous urlrewriter :D comme montrer ci dessus...
        • Partager sur Facebook
        • Partager sur Twitter
          27 juillet 2011 à 18:54:45

          La meilleure méthode est celle qui ne contient pas de faille majeure (mais dans ton cas je vois mal comment créer un trou de sécurité) et celle qui est le plus confortable pour l'utilisateur. Les sessions sont une idée, si tu trouves qu'il est agréable de naviguer sur ton site alors c'est parfait ;)
          • Partager sur Facebook
          • Partager sur Twitter
            28 juillet 2011 à 11:47:45

            Sinon il existe un plugin jQuery qui fait la meme chose, en 2 lignes ? (jQuery UI, css fournit)
            • Partager sur Facebook
            • Partager sur Twitter
              28 juillet 2011 à 16:23:57

              c'est quoi le nom du plugin??

              OK je vois quel plugin tu parles mais c 'est un peu près ce que j'utilise non??

              Le truc comme j'ai dit plus haut c'est que je dois avoir des fenêtres actives.... car j'ai des liens raccourcis... exemple si j'appelle le lien messagerie il doit arriver sur la page zone privée mais avec le tab messagerie active ;)... Vous comprenez??

              Ce qui marche fort bien...

              Dans chaque tag je met un require($file); histoire de pas trop surcharger la page zone privée... j'aimerai cependant un système qui me permettrait de recharger cette meme pas( le fichier $file) lorsque je veux faire par exemple des modifications...


              Je sais pas si on me comprend...

              Par contre si tu me dis que ta solution pourrait faire la meme chose mais sans devoir passer par une page intermédiaire je suis preneur.. car chez les personnes avec une connection lente... c'est un peu mort...


              Merci
              • Partager sur Facebook
              • Partager sur Twitter
                28 juillet 2011 à 20:15:45

                si $file est du php alors il va falloir appeler l'objet XHR de js, (AJAX quoi)

                Jquery : $.get('file.php', [arg], Callback);

                Après pour la template, à toi de gérer l'affichage des div en fonction

                $("#id").css('display', 'none'); ou block en fonction ;)
                • Partager sur Facebook
                • Partager sur Twitter
                  28 juillet 2011 à 20:25:34

                  Régler des petits détails de mise en page en AJAX c'est comme aller faire ses course au marché bio en Hummer x)

                  Dans ce cas là je te reccomande également de stocker le choix de chaque visiteur dans une base de donnée avec leur IP, la date et le temps sur lequel ils sont restés sur ta page, de mettre tout ça en cache et de faire des sauvegardes régulières avec un cron. Tu peux également faire appel à une société qui veille 24/24h à la ventilation de tes serveurs, masi là ce serait quand même un tout petit peu abuser hein ! :p
                  • Partager sur Facebook
                  • Partager sur Twitter
                    28 juillet 2011 à 22:10:50

                    Tu porte bien ton nom ;)

                    AJAX : recharger file.php, la mise en page, jquery sans charge sans ajax.

                    Puis faire un cache sur de donnée volatile non persistante, c'est un grand bravo :-°
                    • Partager sur Facebook
                    • Partager sur Twitter
                      29 juillet 2011 à 7:46:49

                      Yop à tous... voila je suis entrain de bosser sur l'interface de Jquery UI.. j'ai juste un soucis de taile qui se profile...

                      1-J'utilise la version avec ajax

                      <script>
                      			$(function() {
                      				$( "#tabs" ).tabs({
                      					ajaxOptions: {
                      						error: function( xhr, status, index, anchor ) {
                      							$( anchor.hash ).html(
                      								"Couldn't load this tab. We'll try to fix this as soon as possible. " +
                      								"If this wouldn't be a demo." );
                      						}
                      					}
                      				});
                      			});
                      	</script>
                      


                      je crée bien le dossier page et les fichiers qui doivent etre dedans.


                      <div id="tabs">
                      	<ul>
                      		<li><a href="#tabs-1">Preloaded</a></li>
                      		<li><a href="page/joueur.html">Tab 1</a></li>
                      		<li><a href="page/membre.html">Tab 2</a></li>
                      		<li><a href="page/avatar.html">Tab 3 (slow)</a></li>
                      		<li><a href="ajax/content4-broken.php">Tab 4 (broken)</a></li>
                      	</ul>
                      	<div id="tabs-1">
                      		<p>Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.</p>
                      	</div>
                      </div>
                      


                      Dans la page joueur.html

                      j'ai simplement mis ceci:

                      page joueur test
                      


                      Et lorsque je lance le fichier index.html(contenant tous le script complet

                      YES! il me met pas le message d'erreur ajax!!

                      Mais il ne m'affiche pas non plus le contenu de ma page joueur.html...

                      D'où viens?
                      • Partager sur Facebook
                      • Partager sur Twitter
                        29 juillet 2011 à 11:13:28

                        Et la console d'erreurs elle dit quoi? Firebug donne quoi au niveau du retour AJAX?
                        • Partager sur Facebook
                        • Partager sur Twitter
                          25 août 2011 à 19:17:48

                          t'as fini par trouver ta réponse? J'ai explorer les mêmes problèmes que toi, moi ca finit par tourner impec !!
                          • Partager sur Facebook
                          • Partager sur Twitter
                            27 août 2011 à 9:47:48

                            Oui mais au final ca ne convenait pas a mes attentes du coup je suis passé a autre chose...
                            • Partager sur Facebook
                            • Partager sur Twitter

                            Jquery et simple tab

                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                            • Editeur
                            • Markdown