|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre à l'essai
![]() Inscription : mars 2009 Messages : 170 ![]() |
Bonjour à tous,
je ne suis pas un pro en JavaScript donc je fais appel à votre savoir. J'ai fait une fonction qui permet de lister dans un champs "liste" la totalité des éléments de ma table "catégories" de ma base de données. je fais appel à cette fonction dans un formulaire. Le but étant de récupérer le choix de l'utilisateur. J'ai pour cela utiliser l'événement onChange="document.forms['Selectcategorie'].submit(); . Je l'ai déjà utilisé sur d'autres pages sans problème et je l'utilise sur la même page pour d'autres fonctions. Le problème que je rencontre est que pour la fonction reprise ci-dessous, ma page ne se recharge pas uniquement avec cette fonction. Par contre, chose étrange si je fais appel (juste après) une seconde fois à cette fonction cela marche ! Je vous mets le code de ma fonction et son "appel" dans ma page ci-dessous: Quelqu'un aurai-il une idée ? la fonction: Code :
l'appel dans ma page: Code :
Merci pour votre aide ! |
||||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() danseur Inscription : août 2003 Messages : 2 667 ![]() |
merci beaucoup!
|
|
|
01
|
|
|
#3 |
|
Membre expérimenté
![]() Développeur Inscription : février 2010 Messages : 360 ![]() |
?
Euh...combien de formulaire as-tu ? Quel formulaire veux-tu envoyer ? Tu as regardé le code HTML généré ? (doit faire mal au yeux....!) |
|
|
00
|
|
|
#4 |
|
Membre à l'essai
![]() Inscription : mars 2009 Messages : 170 ![]() |
Hello nadox,
merci pour ton aide. En fait, mes listes déroulantes sont dans 1 formulaire et puis l'appel des fonctions se fait dans un formulaire général qui contient d'autres listes déroulantes (sous forme de fonctions). Ces dernières fonctionnent parfaitement. Je peux faire qu'un seul formulaire pour le tout? Et ce serait ce formulaire que je rechargerais pour toutes les fonctions liste que j'ai ? |
|
|
00
|
|
|
#5 |
|
Membre expérimenté
![]() Développeur Inscription : février 2010 Messages : 360 ![]() |
Euh deux choses :
1- au niveau validatité du HTML, on ne devrais pas avoir un formulaire qui contient un autre formulaire... 2- au niveau de ton problème, le formulaire a un 'id' mais pas de 'name', et c'est bien le 'name' qui est utilisé pour Code :
document.nom_de_mon_formulaire.submit() C'est d'ailleurs plus propre de faire : Code :
document.forms['nom_de_mon_formulaire'].submit() |
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() danseur Inscription : août 2003 Messages : 2 667 ![]() |
sachant aussi qu'un formulaire ne doit pas avoir d'attribut name...
__________________
On ne mord pas, on manifeste seulement notre tristesse face à des exposés de situations qui défient notre entendement binaire. |
|
|
00
|
|
|
#7 |
|
Membre expérimenté
![]() Développeur Inscription : février 2010 Messages : 360 ![]() |
Oui javatwister, si le doctype est strict. (ce qui d'ailleurs devrait être le cas sur un nouveau projet...)
Mais je crois que paintbox cherche à faire en sorte que ça marche sans même s'interresser au respect des standards ![]() Tu ne recharge pas un formulaire mais la page complète à chaque fois... donc je ne vois pas l'intérêt d'avoir plusieurs formulaires... par contre, tu vas faire quoi avec ce formulaire 'global' au final ? Toujours poster sur la page courante ? Enregistrer les données dans la base ? |
|
|
00
|
|
|
#8 |
|
Membre à l'essai
![]() Inscription : mars 2009 Messages : 170 ![]() |
En fait, mon formulaire est utilisé dans un back-office. Cette page me permet d'ajouter un nouveau produit dans ma base. Sur cette page, j'affiche sous forme de liste les "catégories" de produits ainsi que d'autres infos. De plus, l'utilisateur peut également ajouter une nouvelle catégorie.
Le but final du formulaire "général" est donc d'engristrer le nouveau produit dans la base de données. J'ai essayé en mettant name="blabla" à mon formulaire mais cela ne change rien. Question ? Pourquoi est ce que cette fonction si j'y fait appel à nouveau dans le même formulaire fonctionne? |
|
|
00
|
|
|
#9 | ||
|
Membre expérimenté
![]() Développeur Inscription : février 2010 Messages : 360 ![]() |
et :
Code :
le name est a mettre sur le formulaire sur lequel on fait le submit... |
||
|
|
00
|
|
|
#10 | ||
|
Membre à l'essai
![]() Inscription : mars 2009 Messages : 170 ![]() |
Non, cela ne fonctionne pas.
Par contre si je répète l'appel de la fonction juste après le premier appel, elle fonctionne comme ceci: Code :
|
||
|
|
00
|
|
|
#11 |
|
Membre expérimenté
![]() Développeur Inscription : février 2010 Messages : 360 ![]() |
Bon je me rends compte que le problème n'est pas javascript mais bien PHP...
Le problème javascript aurait été corrigé avec l'ajout du name(je ne sais pas si tu as vu j'ai modifié le dernier code que j'ai posté) Par contre, je ne suis pas expert en PHP, mais je crois voir deux erreurs : - ton select n'est pas écrit par un echo (donc a priori écrit seulement à l'endroit ou tu défini ta fonction) - tu as un double $ quelque part... As-tu le code HTML généré, c'est lui qui te permettras de voir si le html est correct ? De plus, nous ne sommes pas sur le forum PHP, le Javascript est éxécuté coté client, pas coté serveur ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com