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

AJAX Discussion :

[AJAX] Navigation ajax d'une div ?


Sujet :

AJAX

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 7
    Points : 5
    Points
    5
    Par défaut [AJAX] Navigation ajax d'une div ?
    Bonjour,

    Bonsoir !
    Je suis en train d'essayer de mettre une navigation ajax sur mon site qui utilise un script.
    Le script n'est pas énormément modifiable donc j'essaie de modifier surtout le code que j'ajoute.

    Voila j'ai le code ci dessous. Il fonctionne tres bien. Le seul probleme est qu'il m'affiche toute la page (avec le header et le footer). Normal puisque les pages du script sont faites comme ça.

    Seulement je voudrais qu'il ne m'affiche qu'une div du fichier. Par exemple je voudrais qu'il m'affiche la div qui porte le nom 'content'.Cela est t'il possible ?

    Si oui, je suppose que c'est sur la ligne en gras. Mais comment faire ?

    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
    $(document).ready(function(){
    
    	$("#menu a").click(function(){
    		page=$(this).attr("href");
    		$.ajax({
    			url: page,
    			cache:false,
    			success:function(html){
    				afficher(html);			
    			},
    			error:function(XHTMLHttpRequest,textStatus, errorThrown){
    				alert(textStatus);
    			}
    		})
    		return false;
    	});
    });
    
    
    
    function afficher(data){
    	$("#ajax").fadeOut(500,function(){
    		$("#ajax").empty();
    		$("#ajax").append(data);
    		$("#ajax").fadeIn(1000);
    	})
    }


    Merci d'avance aux personnes qui se pencheront sur mon probleme.

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,
    C'est que la page que appelle dans la requête ajax retourne un document en entier, elle ne doit retourner que la partie que tu veux afficher dans la div.

    A+.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Oui justement, comment peut on faire cela ?

    On m'a parlé de parser du xml mais ça me semble bien compliqué.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Points : 1 418
    Points
    1 418
    Par défaut
    Citation Envoyé par jejemo Voir le message
    Oui justement, comment peut on faire cela ?

    On m'a parlé de parser du xml mais ça me semble bien compliqué.
    La page renvoyée par le lien ($(this).attr("href")) ne doit contenir que la portion à insérer dans ton DIV pas un document HTML complet.

    devyan.


    devYan.

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Tu ajoutes une variable pour dire au fichier appelé qu'il s'agit d'une requête AJAX donc il ne doit envoyer que le bout de code nécessaire pour le nouveau contenue du div du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (isset($_POST['nomVar']))
    {
      echo "nouveau contenue";
      exit;
    }

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Merci pour vos réponses !

    Finalement on m'a proposer une solution avec un code plus court et aussi efficace. Il marche parfaitement.

    Le voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $(document).ready(function(){       
       $("#menu_vert a").click(function(){       
        page=($(this).attr("href"));   
        $("#content").load(page+" #content");  
        return false;   
       });  
    });

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

Discussions similaires

  1. [Dojo] AJAX/PHP Mettre à jour une div avec un contenu TabContainer
    Par chotana dans le forum Bibliothèques & Frameworks
    Réponses: 7
    Dernier message: 04/09/2012, 13h46
  2. Réponses: 3
    Dernier message: 02/07/2010, 23h58
  3. [AJAX] auto actualisation d'une div
    Par you.baddi dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 28/06/2008, 12h48
  4. Réponses: 6
    Dernier message: 13/07/2007, 11h46
  5. [AJAX] navigation ajax (aide)
    Par speedylol dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/10/2006, 14h39

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