Contourner un onChange avec du php?

Eléphant du PHP | 50 Messages

17 mai 2009, 10:32

Bonjour,

J'ai une page, sous forme d'un formulaire, qui lit un fichier de cette forme:
[unesection]
CLE=VALEUR
CLE2=VALEUR2
CLE3=VALEUR3
....

[unesection2]
CLE=VALEUR
CLE2=VALEUR2
CLE3=VALEUR3
....
Et j'ai une liste déroulante avec comme nom et valeur le nom des section (ce qui est entre crochets).
Puis j'ai des champs (input, checkbox ..) que je voudrais mettre à jour(changer leurs value) en foncion du choix de la liste.

J'ai pensé à faire deux formulaires et rajouter un bouton avec ma liste déroulante mais je trouve ca un peu bricolage.

Le plus gros problème c'est que je n'ai pas le droit au javascript et que je connais pas vraiment d'autres languages :(

Donc je voulais savoir s'il existait de meilleurs moyen que mon bricolage.

L'idéal étant sans recharger la page (ca j'y crois pas trop) et sans rien cliquer d'autre que dans la liste déroulante.

Merci si vous prennez le temps de m'aider ;)

Bonne journée

ViPHP
ViPHP | 1996 Messages

17 mai 2009, 11:49

Alors j'ai eu le même cas : pas le droit au Javascript et malheureusement pour toi je pense que tu vas être obligé de faire des rechargements de pages...
Une idée comme çà rapidement : Tu peux créé deux listes sous textarea : une vide , une pleine et les visiteurs prendront une partie de la liste pleine et la déplaceront par copier-coller dans la liste vide que tu valideras. Pour m'expliquer un peu : quand tu double clique sur un texte, le navigateur internet (souvent) sélectionne le mot entier et tu peux le déplacer avec ta souris dans un autre texte area.
L'avantage : pas de Javascript et pas de rechargement, l'inconvénient : le traitement derrière doit être pile poil...
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Eléphant du PHP | 50 Messages

17 mai 2009, 17:34

Bonjour et merci de ton aide :)

C'est vrai que pour le rechargement c'est surement pas faisable, je le disais juste au cas ou.

Et même en rechargeant, il n'y aurait pas un équivalent de

Code : Tout sélectionner

onChange="this.form.submit();"
?

J'ai bossé ton idée que j'ai trouvé bien astucieuse mais malheureusement ça ne colle pas avec mon truc et je ne suis pas sûr que l'utilisateur final aimerait :S

ViPHP
ViPHP | 1996 Messages

18 mai 2009, 10:09

Pour remplacer un

Code : Tout sélectionner

onchange="this.form.submit;"
tu as directement le

Code : Tout sélectionner

<input type="submit" value="modifier" />
Là pas de Javascript et c'est du HTML natif.
Je n'ai pas testé mais si tu le mets dans le formulaire en mode caché (tu le mets en absolute via les CSS avec une position incompatible avec l'affichage : il existe mais reste invisible pour l'utilisateur car il sort de son écran), je pense que l'utilisateur peut envoyer les modifications en appuyant sur ENTER.

Essaye cela pour voir :

Code : Tout sélectionner

<form> <select> <option>... </select> <input type="submit" value="modifier" style="position: absolute; top:-2000px; left: -2000px;"/> </form>
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Eléphant du PHP | 50 Messages

18 mai 2009, 18:22

Bonjour et encore merci pour ton aide.

Le bouton submit j'avais essayer mais il fallait cliquer dessus donc on m'a dit que ce n'était pas assez souple :(

J'ai essayé ta méthode et ca marche bien sur mon pc (Fedora et Firefox) mais pas sur le pc qui aurait les scripts au final :(

La solution actuelle retenu étant de faire une liste de liens avec des infos en GET et un foreach.

La deuxième solution envisagée et de détecter le navigateur et soit de mettre du javascript, soit de mettre un bouton en fonction du navigateur.


J'ai oublié de préciser aussi, pas possible de faire de CSS, car je dois reste le plus "simple" possible..

Je pense que ce projet est voué à l'échec mais bon je m'exécute sans broncher :)

Merci à vous qui essayez quand même de m'aider malgré mes contraintes :roll:

Bonne soirée

Invité
Invité n'ayant pas de compte PHPfrance

18 mai 2009, 19:25

Hmmm vu ce que tu me racontes, tu as l'air de développer pour PDA ou quelque chose comme cela...
Si c'est le cas, je pense que seule ta formule choisie (GET + foreach) fonctionnera. Tu es resté en Web 1.0 :wink:

Eléphant du PHP | 50 Messages

18 mai 2009, 19:58

Hmmm vu ce que tu me racontes, tu as l'air de développer pour PDA ou quelque chose comme cela...
Si c'est le cas, je pense que seule ta formule choisie (GET + foreach) fonctionnera. Tu es resté en Web 1.0 :wink:
Presque, pour du client léger ;)
200Mhz, 64mo ram, 128mo de mémoire flash pour la plus petite config. On est pas loin des PDA!
Du coup c'est limité niveau serveur PHP, navigateur et donc programmation :)
Merci encore!