Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/02/2008, 13h36   #1
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 175
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 175
Points : 28
Points : 28
Par défaut Poster une valeur issue d'une fenêtre JavaScript

Bonjour,

J'ai crée un événement javascript qui ouvre une fenêtre avec un bouton "oui" et un bouton "non", à l'appui sur un bouton de soumission d'un formulaire.
Je souhaiterais qu'en cliquant sur oui ou non, une autre page php soit ouverte avec en plus des variables déjà postées, une nouvelle variable qui contient 0 ou 1 selon qu'on a cliqué sur oui ou non...

Typiquement par exemple:
- un formulaire avec des informations sur une personne (déjà fait...)
- un bouton pour soumettre le formulaire
- le bouton ouvre une boîte de dialogue qui demande si la personne est prioritaire
- la valeur d'un champ "prioritaire" à 0 ou à 1 est posté avec les autres valeurs
- on arrive sur une nouvelle page php qui contient la requête sql (ça c'est déjà fait aussi...)

Comment me conseillez-vous de faire? de quel type va être la valeur fournie par la fenêtre javascript? y a-t-il moyen de poster cette valeur? sinon quel moyen mettre en oeuvre?


Cordialement
Mathieu
Mathieu72 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2008, 15h09   #2
Membre émérite
 
Inscription : septembre 2007
Messages : 951
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 951
Points : 948
Points : 948
Le mieux c'est de modifier un hidden field en fonction de ce qu'a clické l'utilisateur.

Peux-tu poster ton code Javascript avec ta boite de dialog ?
batataw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2008, 17h58   #3
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 175
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 175
Points : 28
Points : 28
Voici...

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<FORM method=post action="requete test.php">
Enregistrement d'un utilisateur
<TABLE BORDER=0>
<TR>
	<TD>Nom</TD>
	<TD>
	<INPUT type=text name="nom">
	</TD>
</TR>
 
<TR>
	<TD>Prénom</TD>
	<TD>
	<INPUT type=text name="prenom">
	</TD>
</TR>
 
<INPUT type="submit" value="Envoyer" onclick="return confirm('cet enregistrement est-il prioritaire???');">
 
 
 
<form>
Alors le problème dans ce code, c'est que la fenêtre ouverte demande juste confirmation du fait qu'on doive rentrer l'enregistrement ou non... Et moi ce que je souhaiterais, c'est un bouton oui/non qui demande si l'enregistrement est prioritaire, poste un champ $_POST['prioritaire'], qu'on puisse récupérer de la page php requete test.php dont le code est le suivant:

Code :
1
2
3
voici les variables postées:<BR><BR>
 
<? echo "nom: ".$nom."<BR>prénom: ".$prenom;?>

Cela est-il possible?

Merci
Mathieu
Mathieu72 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2008, 22h27   #4
Membre émérite
 
Inscription : septembre 2007
Messages : 951
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 951
Points : 948
Points : 948
Oui c'est possible mais ca va te demander du travail :
- Tu peux utiliser le systeme de la Lightbox .
- Ou bien si c'est trop compliqué tu peux ajouter une simple case à cocher
[x] Cet enregistrement est-il prioritaire???
batataw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2008, 22h49   #5
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 175
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 175
Points : 28
Points : 28
Je viens d'aller voir sur le web ce qu'était la lightbox, et je ne vois pas en quoi cela répond à mon problème...
Et il me semblait aussi que tu étais optimiste sur mon problème hélas... Sais-tu comment créer une boîte de dialogue avec une réponse oui/non? si oui, on devrait pouvoir facilement récupérer la valeur dans un champ hidden, et la poster??? quant à moi, je ne sais déjà pas créer la boîte, mais je ne vais peut-être pas apprendre s'il n'y pas d'espoir de ce côté... Quelqu'un a-t-il une idée sur la question?

Mathieu
Mathieu72 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2008, 23h14   #6
Membre émérite
 
Inscription : septembre 2007
Messages : 951
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 951
Points : 948
Points : 948
Je vais etre plus precis, comme je te l'ai dis ci-dessus c'est pas simple.
La lightbox fait apparaitre un fenetre au milieu de nulle part pour afficher des photos. il faut que tu fasses une fenetre DIV qui elle aussi apparaitra au milieu de nulle part. Tu ne peux pas le faire avec les boite de dialog classic. Tu dois le faire en HTML.
Ca ressemblera a ca :
Code :
1
2
3
4
5
 
<div>
Cet enregistrement est-il prioritaire???
<div onclick="alert('Oui')">Oui</div><div onclick="alert('Non')">Non</div>
</div>
Tu interceptes les evenements onclick, tu peux alors modifier ta variable HIDDEN.
C'est tres puissant mais assez difficile a mettre en oeuvre. C'est tres utilisé en WEB2.
Voir l'exemple suivant : http://jquery.com/demo/thickbox/
batataw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/02/2008, 01h26   #7
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 175
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 175
Points : 28
Points : 28
Alors, tu viens de me dire qu'on ne pouvait pas le faire avec les boîtes de dialogue classique: j'ai utilisé simplement une division htm. Je me suis inspiré de http://www.developpez.net/forums/sho...d.php?t=338493 que j'ai simplifié pour mon usage personnel donc.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<script type="text/javascript">
function ouvreBoite()
{  document.getElementById("maBoiteHtm").style.display = "block";} 
function clicOui()
{ document.formulaire.prioritaire.value='Oui';document.forms['formulaire'].submit();} 
function clicNon()
{ document.formulaire.prioritaire.value='Non';document.forms['formulaire'].submit();} 
</script>
 
 
 
 
<FORM method=post id="formulaire" name="formulaire" action="requete test.php">
<input type=hidden name='prioritaire'> 
 
 
Enregistrement d'un utilisateur
Nom<INPUT type=text name="nom">
Prénom<INPUT type=text name="prenom">
 
 
<style type="text/css">
.conteneurPrompt{
 /** Firefox **/
 position: fixed;
 top: 25%;
 left: 25%;
 
 border: 3px outset #AAAAAA;
 /*height: 150px;*/
 width: 50%;
 display: none;
 z-index: 2000;
 
 /** IE **/
 position: expression(IEFixedElementPos());
 /** on tient compte des 25% definis plus haut **/
 top: expression(IEFixedElementTop(parseInt(document.body.clientHeight * 25/100)));
 left: expression(IEFixedElementLeft(parseInt(document.body.clientWidth * 25/100)));
 
}
</style>
 
 
 
 
<div id="maBoiteHtm" class="conteneurPrompt">
Enregistrement prioritaire?
<button onclick='clicOui();'>Oui</button>
<button onclick='clicNon();'>Non</button>  
</div>
 
 
<input type="button" value="Soumettre le formulaire" onclick="ouvreBoite();">
 
</form>

et après pour controler, comme avant, le fichier "requete test.php":
Code :
1
2
3
voici les variables postées:<BR><BR>
 
<? echo "nom: ".$nom."<BR>prénom: ".$prenom."<BR>prioritaire?: ".$prioritaire;?>




Les questions qui subsistent:
- une erreur se produit au chargement de la deuxième page (erreur qui se produisait déjà en faisant un simple copier-coller du code du lien donné). D'où vient cette erreur?
- ne peut pas faire en sorte que la boîte de dialogue prenne toute la page? s'affiche à la place du reste?


Mathieu
Mathieu72 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/02/2008, 22h55   #8
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 175
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 175
Points : 28
Points : 28
Salut,

Pour ce qui est l'erreur, j'ai essayé de mettre des trucs en commentaire, pour voir où il plantait, et je suis arrivé à la conclusion, que l'erreur se produisait, dés qu'on faisait appel à une classe:

Code :
<div id="idFond" class="fond">
&nbsp;
</div>rien que ça produit une erreur du navigateur qui utilise la classe "fond"... Peut-être y a-t-il une déclaration à faire avant? Cette erreur-là n'est-elle pas un problème d'en-tête? je ne sais pas... ça doit être simple... qqun peut-il aider?


Au fait, l'erreur ne se produit pas dans firefox!

Cordialement
Mathieu
Mathieu72 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2008, 23h14   #9
Membre émérite
 
Inscription : septembre 2007
Messages : 951
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 951
Points : 948
Points : 948
J'ai essayé ton code ça marche nickel sur IE, je ne vois pas ce qui pourrait déconner ???
batataw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2008, 15h29   #10
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 175
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 175
Points : 28
Points : 28
Ben quand je charge la page, il y a un panneau attention "!" en bas de la page, "Certains problèmes pourraient empêcher cette page web de s'afficher ou de fonctionner correctement"... Après cependant ça fonctionne quand même... c juste que j'ai un message d'erreur!

Mathieu
Mathieu72 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2008, 16h12   #11
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 175
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 175
Points : 28
Points : 28
apparemment le problème ne se produit qu'avec mon ie à moi...
j'ai placé le fichier sur un serveur distant et demandé à qqun d'autre de l'ouvrir, le problème n'est pas apparu...
par ailleurs le problème ne se produit pas avec firefox

Enfin je peux ajouter que j'ai réinitialisé les paramètres de mon navigateur... sans succés


Mathieu
Mathieu72 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h09.


 
 
 
 
Partenaires

Hébergement Web