Bonsoir à tous,

j'ai suivi ce tuto que j'ai trouvé sur le net
http://www.dailymotion.com/video/x7oghd\_tutoriel-video-navigation-ajax\_lifestyle
tuto très bien, comme d'habitude chez grafikart :)

mon seul problème avec ce script c'est que sous IE ça ne fonctionne pas...

Savez-vous m'aider?

ps: javascript de mon IE est bien activé ;)

10 réponses


Bonsoir,
on peut avoir un minimum de code ou l'adresse du site ?

Joouul
Auteur

voici mon code :)

$(document).ready(function(){
$("#lasuite a").click(function(){
page=($(this).attr("href"));
$.ajax({
url: page,
cache: false,
success:function(html){
afficher(html);
},
error:function(XMLHttpRequest, textStatus, errorThrows){
}
});
return false;
});
});

function afficher(donnees){
$("#grand_rectangle_general").fadeOut(500,function(){
$("#grand_rectangle_general").empty(); // on vide le div
$("#grand_rectangle_general").append(donnees); // on met dans le div le r?sultat de la requete ajax
$("#grand_rectangle_general").fadeIn(500);
});

}

sous chrome, firefox,... ok mais IE il change de page, comme si le JS n était pas activé alors qu'il l'est

Initialise la variable page.

var page=$(this).attr("href");

à la place de

page=($(this).attr("href"));

pour ie initialise toujours les variables. Et c'est pas ie est chiant, c'est une règle de programmation.

Je te conseil d'utiliser netbeans pour coder, il te signalera les erreurs de ce type.

Bonne journée ou nuit :)

Joouul
Auteur

ça fonctionne :) par contre j'ai testé quelque chose d'autre car ce que j'appelait avec ajax n'était que du contenu (donc seulement du texte ou image) ce qui oblige le visiteur a avoir le js activé. J'ai essayé de faire une page complète pour permettre une navigation sans js mais quand ajax charge ma page, il charge tout, design, menu,... et non juste la zone concerné.

Y'a t'il une solution?

Joouul
Auteur

voici mon site (en construction et test :p )
http://www.ledn.be/V2/index.php

en fait par exemple sur la page index se trouve toutes mes news et quand je clique sur "lire la suite", sans js et ajax, il va sur une page news.php qui affiche toute la news. Si sur ma page news.php je met que le script php pour afficher toute ma news, ça fonctionne mais alors je n'ai que du contenu et si le visiteur n a pas JS activé ben si il clique sur "lire la suite" il est redirigé sur news.php et ne voit que la news qui foire car les liens sont plus bons,...

si vous allez tester, actuellement, sur la page news.php c est une page complète avec tout le design, balise,... comme ça si le visiteur n'as pas le JS activé au moin il arrive sur une page correcte.

Bien sûr si vous avez des idées, solutions,... de scripts jquery, ajax,... pour adapter, améliorer,... mon système de news je suis preneur =D

Essaye de voir avec la fonction load("url #content") si tu peux faire quelque chose... :)
Dans ton cas ça sera :

$("#grand_rectangle_general").load(page + " #bloc_news_general_suite");

Voilà :)

Joouul
Auteur

comme ceci?

$(document).ready(function(){
$("#contexte a").click(function(){
var page=($(this).attr("href"));
$("#grand_rectangle_general").load(page + " #bloc_news_general_suite");
return false;
});
});

si oui, j'ai essayé mais ça ne fonctionne pas. Ca enlève ce qui est dans la div, mais rien ne viens à sa place

Tu devrais utiliser la fonction de php urlencode(str) pour tes liens. (Pour la partie du titre en fait) :)
Ça ne fonctionne pas car il y a des espaces dans les liens.

Sinon tu peux le faire en js directement en modifiant la variable page mais je conseille de le faire en php :)

var page=$(this).attr("href").replace(/ /g,"%20");
Joouul
Auteur

bingo :) ça fonctionne (je l'ai fait en php comme tu me la conseillé ;) )

par contre j'ai un autre soucis ^^ donc quand je clique sur lire la suite, ça charge la suite de la news dans la div et à la fin de cette news j'ai un bouton retour pour revenir à ma liste de news, le bouton retour est le même que celui pour lire la suite sauf qu'il redirige vers index.php tout le temps, donc normalement ça devrais aussi enlever ma news de la div et recharger ma liste de news vue que c est le même script js mais ça ne le fais pas, ça redirige vers index.php en rechargeant toute la page.

Comment tu fais pour afficher tes page PhP... moi sa fonctionne pas xD