8791 sujets

Développement web côté serveur, CMS

bonjour,

voila mon probleme :
sur une page j'ai un formulaire 1 et un formulaire 2
lorsque je clique sur le submit du form1 cela affiche le form2

je voudrai que lorsque je clique sur le submit du form2 cela affiche des informations mais au lieu de ca il me refresh la page

EDIT : cela donnerai ca :

<form1>
...
</form1>
quand form1 submit :
  <form2>
  ...
  </form2>
quand form2 submit :
afficher texte




quelqu'un a une idée?

merci d'avance
Modifié par Devil (07 Feb 2008 - 12:02)
>je voudrai que lorsque je clique sur le submit du form2 cela affiche des informations mais au lieu de ca il me refresh la page

Le refraîchissement de la page (ou d'une nouvelle page) semble être le comportement normal lorsqu'on valide un formulaire...

Quel est le problème exactement ? Peux-tu nous montrer quelques lignes de ton code afin que l'on puisse mieux t'aider (et comprendre le problème par la même occasion).
mon code fait plus de 600lignes ^^

en fait mon problème :
j'ai un form1 avec un tableau dedans
<form1>
<table1>
<tr>
<td>btn1
<td>btn2
<td>btn3
</tr>
</table1>
</form1>

les btn sont en fait des submit différents qui menvoient l'ID de l'enregistrement correspondant pour afficher son detail dans un form 2
<form2>
<table2>
<tr>
<td>btna
<td>btnb
<td>btnc
</tr>
</table2>
</form2>

je voudrai que lorsque je clic sur un des boutons a,b ou c, il m'affiche un autre formulaire pour modif se detail mais a la place il em refresh() toutes la page

en fait je coudrai faire comme avec les form 1 et 2 (je cubmit 1 ca affiche 2, je submit 2 ca affiche 3...snas rafraichir a chaque fois ma page
Ca ne peut absolument pas rafraichir la page ? Tourne toi vers le javascript ou l'ajax ! mais malheureusement, je ne comprend pas bien l'intérêt... si tu surfes sur Internet, aucun site ne fonctionne comme cela !

Et puis, lorsque tu appuyes sur le bouton de type "submit" d'un formulaire, il rafraîchit automatiquement la page ! pas moyen de faire autrement avec un bouton de type "submit" se trouvant dans les balises "form".

Ton 1er soucis, c'est savoir sur quel bouton il a cliqué (sachant que ton deuxième soucis, c'est de ne pas rafraichir la page) ?
voila le prob!
je dois afficher les données en fonction du btn sur lequel il a cliqué et ce pour les deux formulaires Smiley lol


le prob c'est que si je submit le deuxieme form il me refresh la page et donc le premier form ne s'affiche plus vu qu'il n'a plus le post de depart pour savoir quel form1 afficher (c'est compliqué je sais ^^)

js et ajax j'y connais rien ^^

en gros : je voudrai afficher ma page en 3 parties qui s'affcihent les une après les autres au fur et à mesure qu'on fait des actions
Modifié par Devil (06 Feb 2008 - 15:23)
Si j'ai bien compris la demande, c'est tout à fait possible.

Au premier affichage de la page seul le form1 doit être affiché. Ce form1 doit transmettre par exemple le champ toto (si c'est 3 boutons alors toto vaudra 1, 2 ou 3).
Pour ne pas afficher les autres form, il suffit avec PHP de conditionner l'affichage en vérifiant que toto n'existe pas

Une fois que l'on submit ce premier formulaire, on affiche le second (cette fois toto existe donc on affiche form2 et comme toto existe pas besoin de réafficher form1) et on peut ajouter un champ hidden avec comme valeur celle de toto pour garder l'historique.

Et ainsi de suite pour les n formulaires successif.
non il faut garder les formulaires ouvert au fur et a mesure c'est ca le souci...
Modifié par Devil (06 Feb 2008 - 22:58)
Hum, je dois bien avouer que je comprend pas tout !!

On reprend.
Tu as une page avec 3 formulaires.
Les valeurs des boutons du 1er sont conditionnés par un paramètre qui arrive à la page.
Les formulaires 2 et 3 sont conditionnés respectivement par le 1 et le 2.
A chaque submit du formulaire n il faut modifier le formulaire n+1 tout en gardant les n formulaires avec les bonnes valeurs.

Ce qui pose visiblement problème c'est de conserver l'historique des formulaires.

Je vais me répéter mais j'utiliserais des champs hidden ou alors une session PHP ou alors javascript.

Dis nous exactement ce qui pose problème dans l'une ou l'autre des techniques parce que là c'est pas évident de t'aider.
Si tu avais aussi un exemple de la page que tu veux avoir, mais un exemple concret !!
Alors voyons voir Smiley langue

ma page au départ :
form1 ou je selectionne l'id de ma convention

lorsque ma convention est selectionnée j'affiche le detail (tableau tout bete) et le form2 ou je modifirai son etat (envoyee...) + le form 3 ou je vois les avenants demandés pour cette convention afin de les modifier

lorsque je modifie son etat cela focntionne (la page se rafraichit et affiche bien tous mes forms)

mais el probleme se pose lorsque je veux modifier un avenant :
si je clic sur le bouton qui me donne l'id de l'avenant pour afficher son detail cela me donne une page ou je n'ai meme plus le form1... (vierge quoi)

j'ai des champs hidden pour recup l'id de la covnention pour chaque form mais la ca ne fonctionne aps

c'est mieu la?
Modifié par Devil (07 Feb 2008 - 10:06)
[Edit] Ne tiens pas compte de ce message...

Désolé mais je comprend rien !

1. Tu as ton premier formulaire qui contient un champ hidden possédant le numéro du formulaire
2. Tu le valides, ça rafraîchit la page
3. Au chargement de la page (après soumission du formulaire), tu peux savoir qu'il s'agit du formulaire 1 qui a été soumis
4. Tu affiches dans le formulaire 1 les valeurs des champs qui viennent d'être posté (dans l'attribut value="") et tu affiches ton formulaire 2

Tu procèdes de la même manière pour le 3ème formulaire !
Modifié par Alphonse (07 Feb 2008 - 10:27)
OK, j'ai relu ton dernier message et je pense avoir compris !!

Comme te l'a suggéré raph, tu dois stocker dans ton formulaire 3 (dans des champs de type hidden) TOUT ce qui te permettra de faire afficher ta page à l'identique ! Plus concrètement, il s'agit de l'id de ta convention en cours et... ben c'est tout visiblement !
le problème c'est que c'est deja fait ^^

dans mon form 3 j'ai deux hidden
un pour l'id de la convention (qui est set par le submit du form1)
un pour l'id de l'avenant (qui est set par le btn submit du form3)

mais le prob c'est que des que je clic sur le btn submit du form3 il me charge ma page mais sans contenu

(pour mes pages je charge le head, le centre (par include des pages) et le foot) or la c'est le centre qui est vide (quand je regarde le source de ma page) alros que le head et le foot sont affichés
huhu !!!!

en fait j'avais oublié e lui mettre action='post' donc par defaut il prenais un get voila pourquoi ca ne focntionnais pas

par contre pourquoi meme avec un get il ne m'affichais rien?? Smiley confus
[EDIT] voir message suivant !

PS: le problème est donc résolu ?
Modifié par Alphonse (07 Feb 2008 - 11:59)
Remarque ! Ce n'est pas action="post" mais method="post" !!!
Modifié par Alphonse (07 Feb 2008 - 11:59)