[Javascript-débutant] lien dynamique

Résolu/Fermé
Kopros Messages postés 597 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 3 février 2020 - 11 déc. 2009 à 06:42
Kopros Messages postés 597 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 3 février 2020 - 11 déc. 2009 à 15:22
Salut à tous !


Pour des raisons aussi diverses que compliquées, je suis un peu obligé d'écrire un code bien sale.
Dans ma page, j'ai disons un champs texte et un lien.
Je souhaite que ce qu'on écrit dans le le champ soit écrit dans le lien.

Voilà ce que j'ai fait pour mon input :
<input type="text" name="nom_img" id="nom_img"  onchange="dynlink(this.value);"/>


Ca c'est la fonction qui est sensée récupérer la valeur de l'input pour la mettre dans une variable :

<script type="text/javascript">
		function dynlink(chaine){
			var name = chaine;
		}
</script>


Mais bon j'ai fait ce script tout seul et il marche pas c'est sûr.

Et sinon ça c'est mon fameux lien qui serait dynamique si je savais m'y prendre :

<script type="text/javascript">
document.write("<a class=\"suite_js\" href=\"addImg.php?nom='+name+'\">TEST<\/a>")
</script>

(le lien marche si on remplace la variable par une valeur fixe)

Voilà donc l'erreur vient de mon script "dynlink" car j'ai testé d'afficher la variable name toute seule, et y'a rien. Le truc c'est que je vois pas ce que je peux faire d'autre.
Si ça se trouve ma syntaxe est pas bonne, mais je vois pas d'erreur, du haut de mes 2 jours d'apprentissage du js en autodidacte...
P'tet aussi que c'est mon onchange de l'input qu'est pas bon. Mais là c'est pareil, je saurais pas quoi mettre à la place.

Quelqu'un peut me sortir de ce tourment intellectuel qui me désespère svp ?

3 réponses

gaerebut Messages postés 1017 Date d'inscription mardi 30 octobre 2007 Statut Membre Dernière intervention 22 novembre 2013 171
11 déc. 2009 à 11:50
Salut,

essaye comme ça:

Niveau HTML:

<input type="text" name="nom_img" id="nom_img"  onkeyUp="dynlink(this.value);"/><div id="url"></div>


Et niveau JS:

<script type="text/javascript">
	function dynlink(chaine){
		document.getElementById('url').innerHTML = '<a class="suite_js" href="addImg.php?nom='+chaine+'>[Lien]<\a>';
			}
</script>



Voila, code testé et fonctionnelle !

A+

Gaerebut
1
Zestyr Messages postés 466 Date d'inscription mercredi 12 août 2009 Statut Membre Dernière intervention 17 octobre 2011 52
11 déc. 2009 à 12:47
<body>
	<label for="linkValue">Direction du lien: <input type="text" id="linkValue" onchange="document.getElementById('link').href=this.value;" /></label>
	<br /><a id="link" href="javascript:alert('le champ doit etre rempli !');">Y aller</a>
</body>


méthode DOM(de l'objet document) utilisée :
getElementById(sId): slectionner un élément dont l'id est égal à sId

Attribut utilisé
value: valeur d'un élément
href: direction du lien

Autre objet:
this: objet ocurrent.

Cordialement Zestyr
0
Kopros Messages postés 597 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 3 février 2020 89
11 déc. 2009 à 15:22
Tout d'abord merci pour vos réponses !

Gaerebut, ton code marche à merveille, c'est nickel c'est exactement ce que je voulais ! :)
Petite précision digne d'un inspecteur des travaux finis : dans la balise de fin du lien, y'a pas le /
<\/a>
(je dis ça au cas où qqun recopierait ton code sans réfléchir)
Encore merci !

Zestyr merci aussi à toi pour les précisions, mais ton code nécessite qu'on tape toute l'adresse dans le champ texte, or mon but c'est d'envoyer ce qui est saisi comme valeur de ce qui ressemble vaguement à une variable $_GET (en écrivant directement le nom de la variable et la valeur dans l'url).
Mais ton code a une certaine logique et ça se pourrait bien que je m'y réfère un peu plus tard.

Encore merci à tous les deux, je vais enfin arrêter de perdre des heures à chercher comment faire !

A+
0