11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour voila je commence un peu javascript et je me retrouve bloqué car je ne sais absolument pas comment faire

pour résumé j'aimerais mettre en place une sorte de tri de vignette avec un formulaire pour cela j'ai crée une bdd avec des array et je générè mon contenu parfaitement.

le problème étant que je devarais remplacer a un endroit précis de mon code une balise type

<script type="text/javascript"> ma fonction() </script> après l'action d'un formulaire.

quelqu'un pourrais m'éclaire sur une façon de résoudre mon problème ? Merci d'avance .
Bonjour,

Je n'ai pas forcément tout compris.

Veux-tu dire que, comme tout (données comprises) est en JS, tu voudrais déclencher une fonction JS au lieu de poster ton formulaire grâce à
<form action="xyz.php" method="post">

Si c'est le cas alors, moi ce que je fais tout simplement c'est :
1/ Je décris mon formulaire html tout bête, prenons l'exemple d'une boite à liste initialisée avec les valeurs d'un tableau.
2/ Je ne mets pas la ligne ci-dessus.
3/ Je mets un beau bouton à coté dans une balise <img> avec la propriété onclick qui va bien. Du genre :
<img ... onclick="mafonction()">

Dans mafonction(), tu peux alors récupérer les valeurs des formulaires de la façon suivante :
document.forms["formname"].elements["slctname"].selectedIndex;


Tu peux aussi chercher à exploiter l'événement onsubmit du formulaire.

Bon... je ne sais pas si j'ai été très clair... mais... comme tu ne l'avais pas été toi non plus...

Si c'est bien ce genre de truc que tu cherches, dis-le, je te donnerai des exemples plus détaillés.
Modifié par aCOSwt (05 Jun 2008 - 08:47)
merci beaucoup de m'avoir répondu j'arrive a récupéré les données de mon formulaire.
je stock la données dans une variables
et j'aimerais pouvoir recharger la page internet avec la prise en compte de la variable

Mon formulaire
              <form action="#" id="hoho" onsubmit="test();"  >
                  <fieldset id="prix">
                  <label for="liste">Classer par :</label>
                  <select id="liste" name="ordre">
                            
                    <option value="0" >Prix croissant</option>
                    <option value="1">Prix decroissant</option>
                  </select>
                            <input type="submit" value=" OK " class="button" onclick="change()"  /><br />
               	</fieldset>
            </form>

Ma fonction Change () qui s exécute apres avoir apuyé sur OK de mon formulaire
function change()
{
	var valeur = document.getElementById("liste").value
	if (valeur == 0 ){
		var az = 1;
	}else{ var az = -1;
	
	}
}


et a l'intérieur de ma page html j'ai une fonction qui va généré mon contenu

la variable az si elle es sur 1 elle trie mon contenu de manierre croissante et si elle es sur -1 elle triera mon contenu de manierre decroissante.

<script type="text/javascript">
TriTab(a[1],az);
</script>


le fait de généré et de récupéré les donné de mon formulaire ne me pose pas de probleme c'es de recharger ma page avec la prise en compte du changement d état de ma variable az
Une solution possible est que :

1/ Tu passes ta préférence de tri dans l'url.
Un truc du genre : tonurl?tri=1
Tu bricoles l'url dans ta fonction change.

2/ Sur le onload de la page, tu testes window.location.search.length.
Si c'est nul alors tu prends ton ordre de tri par défaut,
Sinon, tu parses window.location.search pour trouver l'ordre de tri.