Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Ajax - liste de liens


mofo

Messages recommandés

Bonjour,

 

Je commence en Ajax et je rencontre un problème (normal, sinon je serais pas là). J'ai une liste de lien qui lors d'un clic dessus actualise un div un peu plus bas. Le probblème que je rencontre est que le premier lien fonctionne, mais apres j'ai une erreur javascript qui me dit que la fonction n'existe pas ...

 

Je vous laisse mon code :

 

Le javascript :

<script type="text/javascript">
		   /* Ajax */

			var http; // Notre objet XMLHttpRequest

			function createRequestObject()
			{
				var http;
				if(window.XMLHttpRequest)
				{ // Mozilla, Safari, ...
					http = new XMLHttpRequest();
				}
				else if(window.ActiveXObject)
				{ // Internet Explorer
					http = new ActiveXObject("Microsoft.XMLHTTP");
				}
				return http;
			}

			function majLiens(id)
			{
				document.getElementById('majLiens').innerHTML = '<em>Chargement...</em>';
				majLiens = createRequestObject();
				majLiens.open('get', './majLiens.php?id='+id, true);
				majLiens.onreadystatechange = handleAJAXReturn;
				majLiens.send(null);
			}

			function handleAJAXReturn()
			{
				if(majLiens.readyState == 4)
				{
					if(majLiens.status == 200)
					{
						document.getElementById('majLiens').innerHTML = majLiens.responseText;
					}
					else
					{
						document.getElementById('majLiens').innerHTML = "<strong>N/A</strong>";
					}
				}
			}
	</script>

Mon body

<div id="middle">
<div id="left">
<ul>
	<li>
		<img src="./img/moins.jpg" id="image_89" onclick="aff_form(89);" border="0"> 
		<a href="java script:majLiens(89);">Gestion comptes</a><br>
			<ul style="display: block;" id="liensdoss_89"></ul>
	</li>
	<li>
		<img src="./img/moins.jpg" id="image_7" onclick="aff_form(7);" border="0"> 
		<a href="java script:majLiens(7);">Liens</a><br>
			<ul style="display: block;" id="liensdoss_7"></ul>
	</li>
</ul>
</div>
<div id="right">
	<span id="majLiens">Texte par défaut</span>
</div>
</div>

 

Je vous mets pas le code du fichier 'majLiens.php', il affiche juste l'id passé en paramètre.

 

majLiens.gif

 

Si vous avez une idée.

 

Merci

 

Mofo

Modifié par mofo
Lien vers le commentaire
Partager sur d’autres sites

Si tu pouvais éviter de déclarer http et ne pas t'en servir après, et si tu pouvais éviter de redéfinir à l'intérieur de la fonction majLiens un autre "majLiens" qui correspond à ce qu'aurait dû être http...

 

... ça marcherait peut-être plus qu'une seule fois ;-)

 

 

Autres critiques :

- Pourquoi mettre un <ul> anonyme dans un <div> qui ne contient rien d'autre alors que tu peux mettre l'id de ce div sur la liste <ul> ?

<ul id="left">
(...)
</ul>

- Pourquoi utiliser des balises <a> pour déclencher des scripts en href alors que typiquement le href est fait pour amener le navigateur sur une autre page ? Juste pour avoir le style "cursor: pointer;" ? Un <span> avec un événement onclick() serait beaucoup plus propre...

- Pourquoi redéfinir http à l'intérieur de createRequestObject alors qu'il est déclaré "globalement" juste au-dessus ?

- Pourquoi ne pas donner explicitement la valeur par défaut null à http lors de sa déclaration ?

- Pourquoi autant de choses différentes qui s'appellent majLiens ? (une fonction, un objet, un élément de la page, un script php, ...)

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...