Forum Clubic

Valider un formulaire sans bouton - PHP, javascript:

Bonjour,

Mon script affiche les resultats d’une requete avec pagination.

L’utilisateur peut donc choisir le nombre de resultats à afficher par page.

J’ai donc un formulaire (juste un select) qui lui permet de definir ce nombre.

Je voudrais que le choix d’une valeur de ce select entraine le chargement de la page, sans passer par un bouton de validation du formulaire (submit).

Je sais pas si ça se fait en javascript ou si y’a un attribut a ajouter au select donc je fait appel a vous.

Merci, Ju

Bonjour, tu dois utiliser l’evenement onchange :

<form>
<select name="change" onChange="document.location=this.options[this.selectedIndex].value">
<option value="page1.php">choix1
<option value="page2.php">choix2
<option value="page3.php">choix3
</select>
</form>

A adapter selon tes besoins :slight_smile:

Non.

Déjà, c’est document.location.href

Ensuite, suffit juste de faire un formulaire tout classique :

<form action="machin.php">
<select name="page" onChange="document.location=this.form.submit();">
<option value="5">choix1</option>
<option value="10">choix2</option>
<option value="15">choix3</option>
</select>
<noscript><input type="submit" value="Changer" /></noscript>
</form>

Ce qui a l’avantage de permettre à quelqu’un sans javascript de quand même changer la page. (j’ai supposé que tes résultats étaient sur la même page)

En faisant comme cela sa m’envoit vers un URL qui est “undefined”

Peut etre est-ce du a la method d’envoi du form (POST)

voici le bout de code:

echo '<form method="POST" action="machine.php">';
	echo '<center>Nombre de résultats par page : ';
	echo '<select name="rpp" onChange="document.location=this.form.submit();">';
	echo '<option value="20" selected="selected">20</option>';
	echo '<option value="30">30</option>';
	echo '<option value="50">50</option>';
	echo '<option value="100">100</option>';
	echo '<option value="200">200</option>';
	echo '</select>';
	echo '<noscript><input type="submit" value="Changer" /></noscript>';
	echo '</form>';

Edit : GET me donne la meme erreur

Vire le this.location= devant

j’ai fait que reprendre le code de teddy

je ne trouve pas de "this.location=" dans mon code, apacompris ce que tu voulais dire…

Merci pour tes reponses rapides

echo '<form method="POST" action="machine.php">';
	echo '<center>Nombre de résultats par page : ';
	echo '<select name="rpp" onChange="this.form.submit();">';
	echo '<option value="20" selected="selected">20</option>';
	echo '<option value="30">30</option>';
	echo '<option value="50">50</option>';
	echo '<option value="100">100</option>';
	echo '<option value="200">200</option>';
	echo '</select>';
	echo '<noscript><input type="submit" value="Changer" /></noscript>';
	echo '</form>';

:wink:
onChange prend en param du script et “this.form.submit” c’est déjà du script.
au passage document.location prend une url, et pas du script, “java script:maFonction()” est une url acceptable, mais ça devient overkill de passer par du script, une url et à nouveau du script plutôt que lancer directement le script. :smiley:

Impecable

Merci à vous!