IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

pushState() et popState() pour débutant


Sujet :

jQuery

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 9
    Par défaut pushState() et popState() pour débutant
    Salutation à tous.

    Je suis vraiment un débutant dans ce domaine, et j'aimerais obtenir votre aide si ce n'est trop demandé.

    J'ai cherché une méthode pour afficher le contenu d'une page web à un autre, sans modifier la structure permettant d'avoir des éléments tels qu'un lecteur audio, etc.

    Grâce au site suivant, j'ai trouvé le code source dont j'ai besoin... http://html5.gingerhost.com/

    Javascript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    // THIS IS WHERE THE MAGIC HAPPENS
    $(function() {
    	$('nav a').click(function(e) {
    		$("#loading").show();
    		href = $(this).attr("href");
    		loadContent(href);
    		// HISTORY.PUSHSTATE
    		history.pushState('', 'New URL: '+href, href);
    		e.preventDefault();
    	});
    	// THIS EVENT MAKES SURE THAT THE BACK/FORWARD BUTTONS WORK AS WELL
    	window.onpopstate = function(event) {
    		$("#loading").show();
    		console.log("pathname: "+location.pathname);
    		loadContent(location.pathname);
    	};
    });
    function loadContent(url){
    	// USES JQUERY TO LOAD THE CONTENT
    	$.getJSON("content.php", {cid: url, format: 'json'}, function(json) {
    		// THIS LOOP PUTS ALL THE CONTENT INTO THE RIGHT PLACES
    		$.each(json, function(key, value){
    			$(key).html(value);
    		});
    		$("#loading").hide();
    	});
    	// THESE TWO LINES JUST MAKE SURE THAT THE NAV BAR REFLECTS THE CURRENT URL
    	$('li').removeClass('current');
    	$('a[href="'+url+'"]').parent().addClass('current');
    }
    Le seul problème est, que j'ignore comment l'intégrer dans mon 'index' : je voudrais prendre les liens dans la partie Navigation, et afficher le contenu dans un 'div' / 'td' / 'article' ...

    Voici mon index :

    HTML
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <body>
    	<!-- NAVIGATION BAR -->	
    	<nav>
    		<ul>
    			<li class="navUrl"><a href="/">Home</a></li>
    			<li class="navUrl"><a href="about_me.php">About Me</a></li>
    			<li class="navUrl"><a href="contact.php">Contact</a></li>
    			<li class="navUrl"><a href="donation.php">Donation</a></li>
    		</ul>
    	</nav>
    	<main>
    		<div id="loading"></div>
    		<table>
    			<tr>
    				<td>Partie Gauche considérée comme "ASSIDE"</td>
    				<td id="wrapper">
    					Partie Droite "ARTICLE" : c'est ici que l'on affiche le contenu des pages...
    				</td>
    			</tr>
    		</table>
    	</main>
    </body>

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    J'ai cherché une méthode pour afficher le contenu d'une page web à un autre
    Ce n'est pas comme ça que fonctionne AJAX !
    On ne charge pas "une page dans une autre", on remplace uniquement une partie de la page.
    Ce qui signifie que le script PHP appelé ne doit renvoyer que la partie à remplacer, pas une page complète.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 9
    Par défaut
    Si c'est le cas, alors tout le reste des informations de mon site devrais normalement être situé dans le fichier "contenu.php"...

    Et le code ne ferra que remplacer le contenu du tableau <td id="wrapper"></td> par des portions du fichier "contenu.php"

    Dans ce cas, comment structurer le fichier "contenu.php" lorsqu'on fera appel à lui par des liens fictifs (eg: '/about_me', '/FAQ', ...) ?

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 9
    Par défaut
    Ah! C'est bon... J'ai enfin compris comment procéder.

    Merci quand même pour l'aide.

  5. #5
    Invité de passage
    Homme Profil pro
    Webdesigner
    Inscrit en
    Août 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Suisse

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Août 2014
    Messages : 1
    Par défaut soluce?
    hello !
    je bute sur le même problème. si tu as la soluce ça m'arrange

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Port comm pour débutant
    Par carotreger dans le forum Débuter
    Réponses: 11
    Dernier message: 03/11/2005, 00h19
  2. Réponses: 2
    Dernier message: 17/10/2005, 22h16
  3. aide petit programme pour débutant
    Par kartp0rqx dans le forum C
    Réponses: 16
    Dernier message: 14/10/2005, 19h31
  4. Aide pour débutant : addition
    Par playentry dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/03/2005, 19h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo