[RESOLU] Problème onchange modification URL

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Problème onchange modification URL

Re: Problème onchange modification URL

par jojolapine » 02 mars 2014, 23:26

Ce que je soulignait effectivement dans ma réponse :)
[...] ton select (qui n'a pas d'attribut name d'ailleurs :) )
Content que tu ais trouvé la solution par toi même !
Tu peux cliquer sur le bouton "résolu" quelque part à en haut du sujet !

Bonne soirée,

Re: Problème onchange modification URL

par cirvent » 02 mars 2014, 23:09

Correction,

Il manque name="value" dans le select.

Merci
Cordialement

Re: Problème onchange modification URL

par cirvent » 02 mars 2014, 23:03

Bonjour,

Merci pour votre réponse,

J'ai testé, mais cela ne fonctionne pas.

Sur la page d'accueil sa ne m'ajoute pas "?value=1" ou "?value=2" à la fin

et sur les autres pages, cela supprimer "?value=x".

Cordialement
Cirvent

Re: Problème onchange modification URL

par jojolapine » 02 mars 2014, 21:29

Bonsoir,

Le principe est de mettre en place un formulaire soumit en javascript (simplement pour éviter d'avoir un bouton supplémentaire à cliquer.)
ça donnerait donc ça :
<form action="" method="get" id="monformulaire">
<select onchange="document.getElementById('monformulaire').submit()">
        <OPTION SELECTED>Change value</OPTION>
        <OPTION value="1">Valeur 1</OPTION>
        <OPTION value="2">Valeur 2</OPTION>
</select>
</form>
Ensuite pour "ne pas toucher" aux autres variables déjà présente dans l'url, il faudra ajouter des inputs de type hidden de cette manière :
<form action="" method="get" id="monformulaire">
<?php
// on test l'existence de la variable avant de l'ajouter afin 
// de ne pas ajouter inutilement la variable à l'url
if(isset($_GET['module'])){
?>
    <input type="hidden" name="module" value="<?php echo htmlspecialchars($_GET['module']);?>" />
<?php
}
?>
<select onchange="document.getElementById('monformulaire').submit()">
        <OPTION SELECTED>Change value</OPTION>
        <OPTION value="1">Valeur 1</OPTION>
        <OPTION value="2">Valeur 2</OPTION>
</select>
</form>
Une manière élégante de conserver toutes les variables de l'url serait de parcourir le tableau $_GET et de générer les input hidden correspondant, en excluant l'entrée correspondant à ton select (sui n'a pas d'attribut name d'ailleurs :) )

Bon courage !

Cordialement,

Problème onchange modification URL

par cirvent » 01 mars 2014, 22:27

Bonjour,

Je vous explique mon problème, pour commencer je ne connais pas le javascript,

Je cherche à faire un menu "select" avec un onchange qui sera en haut à droite sur toutes les pages:
<select onchange="change_value(this)">
	<OPTION SELECTED>Change value</OPTION>
	<OPTION value="1">Valeur 1</OPTION>
	<OPTION value="2">Valeur 2</OPTION>
</select>
l'url de la page d'acueil est : http://monsite.fr/index.php
l'url des autres pages ressemble à : http://monsite.fr/index.php?value=1&module=truc

Donc sur la page d'accueil lorsque l'on choisi une valeur il faut ajouté "?value=1" à la fin de l'url,
et depuis les autres page il faut uniquement changer la valeur de "value",

Vous avez une idée de comment je peux faire celà ?

Cordialement
Cirvent