Problème javascript et textarea

Résolu/Fermé
augustin78 Messages postés 56 Date d'inscription vendredi 9 janvier 2009 Statut Membre Dernière intervention 13 mai 2016 - 20 janv. 2013 à 00:21
georgesjeandenis Messages postés 23 Date d'inscription vendredi 6 juillet 2012 Statut Membre Dernière intervention 10 mars 2013 - 23 janv. 2013 à 21:59
Bonsoir à tous, je vous explique mon problème, je ne connais absolument rien en Javascript. Je maitrise le CSS HTML et PHP. J'ai dû faire appel à un ami qui lui maitrise le javascript pour réaliser ce que je voulais faire: je voulais, à partir de ce que je sélectionnais dans ma liste déroulante afficher un texte et en l'occurence des liens qui correspondaient. Or les messages provisoires qu'il a mis ne sont pas des liens et sont dans un text area qui ne permet pas l'affichage du lien. C'est pour celà que je solicite votre aide, je ne sais absolument pas comment changer celà et je ne veux pas détruire ce qu'il a pu faire. J'aimerai que quand on sélectionne une option on puisse afficher un paragraphe différent et non le text area.
Merci d'avance!

<script language="JavaScript">

// on créer les explications qui s'afficheront dans la zone de texte pour les boutons radio et les cases a cocher
var vide = '';
var choix1 = 'Explication pour le premier choix';
var choix2 = 'Texte concernant le second bouton';
var choix3 = 'Troisieme possibilite de texte';


function affichage(champ) {

// on affecte a la zone de texte la variable passee par la fonction appelee sur le bouton radio
	document.formulaire.explication.value = champ;
	}


// fonction specifique aux 'selects'
function affichageliste(element) {

// on cree les explications qui s'afficheront dans la zone de texte pour tous les 'selects'
// le nom des variables doit se composer du nom de la liste suivi du numero de l'option dans la liste (on commence a 0, pas a 1)
var liste1_1 = 'tu es mort';
var liste1_2 = 'presque mort';
var liste1_3 = 'toujours mort !';


	selection = element.options[element.options.selectedIndex].index;

// si le choix est le premier (Choisissez), on nettoie la zone de texte
	if ( selection == '0' ) {
		affichage(vide);
		}
	else {

// si le choix n'est pas le premier, on lance l'affichage du choix
	 	sel = element.name;
		optionchoisie = eval(sel + selection)
		affichage(optionchoisie);
		}
	}

</script>

<h1>Prédispositions</h1>
<div id="form">
<form name="formulaire">
<label for="Prédispositions"><center>Sélectionnez les prédispositions dont vous êtes atteint et nous vous afficherons les maladies pouvant correspondre.</center></label> 
<br /> 
<!-- le premier parametre donne a la fonction 'verif()' doit etre le nom de la case -->
<center> 
    <select name="liste1_" OnChange="affichageliste(liste1_);">
	<option>Choisissez
	<option>Absence de rate
	<option>Âge avancé
	<option>Alcoolisme
	</select>


2 réponses

georgesjeandenis Messages postés 23 Date d'inscription vendredi 6 juillet 2012 Statut Membre Dernière intervention 10 mars 2013 1
22 janv. 2013 à 15:51
C'est facile, rajoute 2 éléments aux endroits appropriés:

1-

var option_numero = element.options[element.options.selectedIndex].index;

switch(option_numero)
{
case 0: document.getElementById('explication2').innerHTML= ''; break;
case 1: document.getElementById('explication2').innerHTML= '<a href="https://lespointscom.com/">un ami</a><p>Ce que tu veux écrire ici... </p>'; break;
case 2: document.getElementById('explication2').innerHTML= '<a href="https://www.google.ca/?gws_rd=ssl">google</a><p>Ce que tu veux écrire ici... </p>'; break;
case 3: document.getElementById('explication2').innerHTML= '<a href="https://ca.yahoo.com/">yahoo</a><p>Ce que tu veux écrire ici... </p>'; break;
default: document.getElementById('explication2').innerHTML= 'L\'option numero' + + 'n\'existe pas.'; break;
}


2-

<div id="explication2"></div>


C'est tout, le tour est joué.

Ton script est fonctionel sur ma page (clique-droit et view page source):

https://lespointscom.com/a/misc/commentcamarche/2/mon_script.html

https://lespointscom.com/a/misc/commentcamarche/2/ton_script.html
1
augustin78 Messages postés 56 Date d'inscription vendredi 9 janvier 2009 Statut Membre Dernière intervention 13 mai 2016
22 janv. 2013 à 19:10
Tout d'abord bonsoir!
Je vous remercie énormément de vous être arrêté sur mon post!
Le script est en effet fonctionnel ce qui me réjouie beaucoup!
J'ai juste une dernière petite question sauriez-vous comment enlever le text area et juste laisser l'affichage des liens? Lorsque j'essaye d'enlever ces balises le script ne marche malheureusement plus.
Merci d'avance.
0
georgesjeandenis Messages postés 23 Date d'inscription vendredi 6 juillet 2012 Statut Membre Dernière intervention 10 mars 2013 1
23 janv. 2013 à 21:59
C'est normal que ça ne fonctionne plus si vous enlevez uniquement les balises HTML.
Il faut être précis!

Explications :
Si vous enlevez la balise HTML du « text area » intitulé « explication », quand le script javascript s'éxecute, il recherche toujours l'élément HTML intitulé « explication », cependant il ne le trouve plus et cela cause une erreure.

Solution suggérée :

Il faut enlever la référence à « explication » dans le script javascript

Par exemple :

- Rajouter "// " à la ligne :
document.formulaire.explication.value = champ;
// document.formulaire.explication.value = champ;

Comme :

https://lespointscom.com/a/misc/commentcamarche/2/mon_script2.html
0