Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

DYNAMIC CONTENT DANS UNE DIV


Information sur la source

Description

Bonjour,
Le but est d'afficher du contenu dynamique dans une ou plusieurs boxdiv uniques, en cliquant sur un lien ou plusieurs liens uniques...
 

Source

  • Dans le head :
  • <script type="text/javascript" language="javascript">
  • function ouverture(url,id)
  • {
  • var xhr_object = null;
  • var position = id;
  • if(window.XMLHttpRequest)
  • { xhr_object = new XMLHttpRequest(); }
  • else if(window.ActiveXObject)
  • { xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); }
  • else
  • { alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); }
  • // On ouvre la requete vers la page désirée
  • xhr_object.open("GET", url, true);
  • xhr_object.onreadystatechange = function()
  • {
  • if ( xhr_object.readyState == 4 )
  • {
  • if(xhr_object.status != 200)
  • {
  • document.getElementById(position).innerHTML ="Erreur " + xhr_object.status;
  • } else
  • {
  • // j'affiche ou je cache dans la DIV spécifiées le contenu retourné par le fichier
  • if (document.getElementById)
  • {
  • if (document.getElementById(position).style.display == "block")
  • { document.getElementById(position).style.display = 'none'; }
  • else if (document.getElementById(position).style.display == "none")
  • { document.getElementById(position).style.display = 'block'; }
  • else { document.getElementById(id).style.display = 'none'; }
  • }
  • document.getElementById(position).innerHTML = xhr_object.responseText;
  • }
  • } else { document.getElementById(position).innerHTML = '<p style="text-align:center">Chargement des données en cours...</p>'; }
  • }
  • // dans le cas du get
  • xhr_object.send(null);
  • };
  • </script>
  • Dans le body :
  • <a href="./page1.html" onclick="ouverture(this.getAttribute('href'),'page'); return false;">Ma page 1</a>
  • <div id="page" style="display:none; width:300px; height:300px; border:1px dashed #ccc; overflow:auto">&nbsp;</div>
  • <a href="./page2.html" onclick="ouverture(this.getAttribute('href'),'page2'); return false;">Ma page 2</a>
  • <div id="page2" style="display:none; width:300px; height:300px; border:1px dashed #ccc; overflow:auto">&nbsp;</div>
Dans le head :

<script type="text/javascript" language="javascript">
function ouverture(url,id) 
{ 
	var xhr_object = null; 
	var position = id; 
	if(window.XMLHttpRequest) 
		{ xhr_object = new XMLHttpRequest(); }
	else if(window.ActiveXObject) 
		{ xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); }
	else 
		{ alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); }
		
	// On ouvre la requete vers la page désirée 
	xhr_object.open("GET", url, true); 
	xhr_object.onreadystatechange = function()
	{ 
	if ( xhr_object.readyState == 4 ) 
		{ 
			if(xhr_object.status  != 200)
			{
				document.getElementById(position).innerHTML ="Erreur " + xhr_object.status;
			} 	else 
			{
				// j'affiche ou je cache dans la DIV spécifiées le contenu retourné par le fichier

				if (document.getElementById) 
				{ 
					if (document.getElementById(position).style.display == "block") 
					{ document.getElementById(position).style.display = 'none'; } 
					else if (document.getElementById(position).style.display == "none")
					{ document.getElementById(position).style.display = 'block'; } 
					else { document.getElementById(id).style.display = 'none'; }
				}
				document.getElementById(position).innerHTML = xhr_object.responseText; 
			}
		} else { document.getElementById(position).innerHTML = '<p style="text-align:center">Chargement des données en cours...</p>'; }
	} 
	// dans le cas du get 
	xhr_object.send(null);
};
</script>

Dans le body :

<a href="./page1.html" onclick="ouverture(this.getAttribute('href'),'page'); return false;">Ma page 1</a> 
<div id="page" style="display:none; width:300px; height:300px; border:1px dashed #ccc; overflow:auto">&nbsp;</div> 
<a href="./page2.html" onclick="ouverture(this.getAttribute('href'),'page2'); return false;">Ma page 2</a> 
<div id="page2" style="display:none; width:300px; height:300px; border:1px dashed #ccc; overflow:auto">&nbsp;</div> 

Conclusion

Etant débutant, ce script mériterait certainement d'être amélioré. D'ailleurs, si quelqu'un pouvait m'aider à le rendre "unobtrusive", j'en serais heureux. N'hésitez pas à me laisser vos commentaires, bons ou mauvais...
 

Commentaires et avis

signaler à un administrateur
Commentaire de hvb le 19/11/2008 15:13:03

c'est une blague...?

signaler à un administrateur
Commentaire de duterte le 19/11/2008 15:18:35

Pourquoi une blague ???

signaler à un administrateur
Commentaire de hvb le 19/11/2008 15:32:21

Ta source est un exemple d'utilisation d'objet xmlhttprequest qui n'est même pas de toi (le code a été copié de toutjavascript, nan? On reconnaît la façon d'initialiser et de nommer l'objet ;) )
La seule chose que tu ajoutes, c'est un test sur la propriété display de ton div... ça ne vaut franchement pas une source ici.
Ce genre de source est présent en multiple exemplaires sur le site, et ce depuis des années...
(déja critiqué pour la même raison il y a + de 2 ans de cela, ici : http://www.javascriptfr.com/codes/CHARGER-PAGE-PHP-HTML-DANS-DIV_37447.aspx , et l'année dernière ici : http://www.javascriptfr.com/tutoriaux/COMMUNICATION-AVEC-SERVEUR-MODE-ASYNCHRONE-XMLHTTPREQUEST_781.aspx )

Je m'excuse pour le ton un peu sec de ton message....

signaler à un administrateur
Commentaire de XtremDuke le 19/11/2008 15:32:37

Salut,

Je crois que le titre de ta source n'est pas très approprié.
Je vois que l'intérêt de ta source réside dans l'acquisition des données en Ajax et non dans le fait de les plaquer un dans conteneur (un innerHTML n'est pas une source en soit). Ton titre aurait dus ressembler à un truc du genre : "Mise à jour de DIV en Ajax".

Le problème, c'est que les fonctions Ajax commencent à s'empiler ici. Il est bien de présenter sa façon d'appréhender le sujet mais uniquement lorsque celle ci apporte quelque chose "d'exotique".

Bref, même si je trouves ta source bien construit pour un débutant, ça ne valait peut-être pas la peine de la distribuer.


A+

signaler à un administrateur
Commentaire de duterte le 19/11/2008 15:55:36

Merci pour vos commentaires.
Plusieurs choses :

- Le but n'est ni de m'approprier une source, ni de plagier le travail d'un autre.
- N'ayant aucune compétence Ajax et javascript, je m'inspire et essaye de comprendre quelques portions trouvées ici et là, afin de bâtir des solutions.
- Mes compétences sont principalement en php/mysql et je cherchais depuis longtemps, y compris sur vos sites la possibilité d'afficher avec facilité un contenu dynamique non pas dans une seule div, mais dans plusieurs.
Bien sûr, pour vous cela n'a probablement rien "d'exotique" et pourtant, c'est utile ?

Je vois que cette fade contribution a éveillé votre colère, je le regrette.


signaler à un administrateur
Commentaire de XtremDuke le 19/11/2008 16:10:16

Ne le prends pas mal DUTERTE. Ta source n'a en aucun cas "éveillée ma colère".
C'est juste que celle-ci n'apporte pour ainsi dire rien de ce qui est déjà présent ici.

signaler à un administrateur
Commentaire de warpcom le 24/11/2008 12:19:12

allé soyez sympa,ne le décourager pas dé le debut.
tous on a commencé avec des ptit truc comme ca et ces comme ca quand apprend a comprendre.

bonne courage mon amie

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

DRAG DROP JAVASCRIPT [ par webboy ] Bonjour,J'ai une page coup en 2 frame (bas & centre)Dans la frame bas g un tableau de 6 celulles comprenant chacune un div avec un idje voudrais drage Lien et frame [ par romain2boss ] Salut à tous,Moi, je bosse en PHP donc comprend pas tout du Javascript.J'ai un probleme de lien. Mon site est constitué de 2 frames et je voudrait qu' javascript sur fichier séparé : problème de choix de la frame [ par bertrouf ] Bonjour,J'ai une fonction sur un fichier.js, Quand je clique sur le bouton sur la page "main", j'appelle la fonction script() qui m'affiche le contenu Rafraîchire un document [ par Oeil_de_taupe ] Hello tlm,J'ai fait une page PHP (avec javascript pour contrôler les ofrmulaire) avec un fan club avec frames.On peux se loguer, mais quand je me logu Target dans un menu javascript [ par zInSaNiTy ] Bonjour, je veux que que mon lien se dirige dans le frame du bas. J'utilise la synatx suivante:&lt;form name=form&gt;&lt;select name=site SIZE=1 onCha avec Javascript ouvrir 1 frame et pas 1 fenetre ... [ par gillescdp ] bonjour, Voici mon premier post car depuis que je viens lire le forum, j'y ai trouv&#233; mes r&#233;ponses mais pas cette fois... suite a la valida frame + javascript vraiment bizarre ! [ par jef_b ] Coucou les gens ! J'ai un petit probl&#232;me... J'utilise deux frames. L'une contient une applet (frameApplet) et l'autre fait appel &#224; cette a Récupération d'url > javascript / php (d'une frame à une autre) [ par Shiver_Rayfresh ] Bonjour, je suis nouveau ici et je gal&#232;re s&#233;rieusement... Je vous expose le tableau : un frameset de 3 lignes : frame du haut : bandeau f donne php dans un popup javascript dhtml ou ajax [ par speedylol ] bonjour, j aimerais ajouter une sortie de donn&#233;e php dans un popup en javascript ou lesdonn&#233;e d&#233;filerais dans ce popup, l'on ma dis que


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,499 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.