11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

Je suis actuellement en train de développer un site web dans lequel je voudrais inclure une navigation ajax. Voici mon code :


$(document).ready(function(){
	$("#navigation a").click(function(){
		page=$(this).attr("rel");
		$.ajax({
			url: "pages/"+page+".php",
			cache:false,
			success:function(html){
				afficher(html);
			},
			error:function(XMLHttpRequest,textStatus, errorThrown){
				afficher("Erreur lors du chargement de la page");
			}
		})
		return false;
	});
});

function afficher(data){
$("#page").fadeOut(500,function(){
	$("#page").empty();
	$("#page").append(data);
	$("#page").fadeIn(1000);
})
}


Le problème est que cette navigation est faite pour du html alors que moi je veux pour du php... Je n'y connais pas grand chose alors si vous pouviez m'aider ce serait très sympa.

Cordialement, DevAddict
DevAddict a écrit :
Le problème est que cette navigation est faite pour du html alors que moi je veux pour du php...

C'est-à-dire? Ton code PHP est censé produire du HTML, donc au final la fonction jQuery.ajax(), qui envoie une requête HTTP au serveur (du type «envoie-moi "pages/machin.php"), doit recevoir un code HTML. Que ce code HTML soit écrit directement dans un fichier, ou qu'il soit généré par un script PHP, ça devrait être indifférent.
Et bien en faite, quand j'utilise la navigation, la page disparait en fondu et réapparait.
C'est donc bien l'effet désiré, néanmoins, par exemple j'ai une page articles qui contient du php, et bien cette page s'affiche avec plein d'erreur au niveau php alors qu'il n'y en a pas sans l'ajax.

Par exemple, dans cette page j'ai un include php, et bien avec ajax ça me dis que c'est impossible d'inclure.
DevAddict a écrit :
C'est donc bien l'effet désiré, néanmoins, par exemple j'ai une page articles qui contient du php, et bien cette page s'affiche avec plein d'erreur au niveau php alors qu'il n'y en a pas sans l'ajax.

Peut-être que les scripts PHP en question attendent certains paramètres en GET ou POST que tu ne transmets pas dans la requête HTTP?

DevAddict a écrit :
Par exemple, dans cette page j'ai un include php, et bien avec ajax ça me dis que c'est impossible d'inclure.

Ce n'est à priori pas un problème lié à JavaScript, vu que la fonction ajax de jQuery permet d'utiliser JavaScript pour faire une requête HTTP classique. Il n'y a à ma connaissance pas de raison que ça ne marche pas ou que certaines fonctionnalités de PHP soient bloquées.

Sans voir les erreurs exactes retournées, difficile d'en dire plus.
En passant, faire une navigation en Ajax sans avoir implémenté en préalable une navigation classique avec des liens fonctionnels (en couche de base toujours disponible si JS est désactivé), c'est une bêtise. Le site devient inutilisable sans JavaScript, et les liens du menu ne sont plus parcourus par les moteurs de recherche.

Je suppose que tu as fait le nécessaire, mais je préfère placer cet avertissement ici à tout hasard. Smiley cligne
Oui oui ça c'est fait, je développe depuis plus de deux ans, mais c'est mes premiers pas en ajax...

Je ne peux pas avoir accès à mon local pour le moment mais dès que je peux je te donne les erreurs. Merci beaucoup à toi de m'aider.