11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je me tourne vers vous pour essayer de résoudre mon probléme.

Dans mon formulaire, je dois faire un contrôle, car selon le choix dans la liste déroulante, je dois afficher un chiffre dans la cellule à côter.

Voici le morceau de code fautif:

<td style="border:2px solid black;border-top:none;border-bottom:none;"><select name="indice" onchange="javascript:location.reload()">
			<option value="d">D</option>
			<option value="c">C</option>
			<option value="b">B</option>
			<option value="a">A</option>
			</select></td>
			<td style="border:2px solid black;border-top:none;border-bottom:none;"><?php
			$indice = $_POST[indice];
			
			if ($indice == A)
			{
				echo 80;
			}
			else if ($indice == b)
			{
				echo 40;
			}
			else if ($indice == c)
			{
				echo 20;
			}
			else
			{
				echo 0;
			}
			?></td>


J'ai donc essayer de faire une actualisation de la page, mais voila je perds toutes les informations entrées précédement.

Je ne sais pas comment faire, pouvez vous m'aider?

Merci d'avance.
Commence par virer le mot-clé javascript: dans les attributs-évènements onXXX.

En outre quand je lis ça :
onchange="location.reload();"
C'est à se tirer des balles ! Combien de fois faudra-t-il vous dire de ne pas utiliser onchange sur une liste déroulante pour soumettre un formulaire, actualiser la page, ou effectuer une action entraînement un changement de focus ?
Merci pour tes conseils, mais ne connaissant pas le javascript, j'essaie de me débrouiller comme je peux, de plus, sur tous les sites que j'ai visités sur le javascript, il n'y a pas beaucoup de contrôle sur les listes.

Mais je n'arrive toujours pas faire ce que je veux, je viens d'essayer de créer une fonction et mettre des conditions, mais cela ne fonctionne pas.
Modifié par kezhyr (12 Mar 2007 - 09:45)
Salut kezhyr,

Dans ton cas, je ne rechargerait pas la page car tu n'a pas besoin
d'informations particulières coté serveur qui dépendraient de ton choix.

Voici une fonction javascript qui copie la valeur d'une option de liste
dans un élément de la page


function modif(liste) {
	var v = liste.options[liste.selectedIndex].value;
	document.getElementById('truc').innerHTML = v;
}


Le code de ta liste peut l'appeler sur le onchange

<select name="indice" onchange="modif(this)">
	<option value="d">D</option>
	<option value="c">C</option>
	<option value="b">B</option>
	<option value="a">A</option>
</select>
<div id='truc'>valeur initiale</div>


à tester.