Page 1 sur 2

boite de dialogue

Posté : 12 mai 2005, 09:40
par donny
Salut,

J ai fait une boite de dialogue avec un bouton ok et annuler,et je voudrais que lorsque je clique sur ok j enregistre des donnée dans ma base et si je clique sur annuler alors je ne fais rien .

Comment pourrai je savoir quelle bouton a été cliqué ?

if (isset(nom_du_bouton )) ????

Merci

Posté : 12 mai 2005, 09:45
par zeus
Elle est en quoi ta boite de dialogue ? en Javascript ?

Posté : 12 mai 2005, 10:06
par donny
c est que du html pour l instant mais je veux mettre du php pour voir quel bouton a été cliquer et inserer les donnée dans la base

Posté : 12 mai 2005, 10:11
par zeus
Est-ce que tu peut me donner ton code aprce que je vois pas trop ce que tu as fait :(

Désolé :oops:

Posté : 12 mai 2005, 10:30
par donny
voila

Code : Tout sélectionner

<html> <head> </head> <body bgcolor="silver"> <table width="100%"> <tr><td colspan="2" align="center"> <h3>Validation</h3></td></tr> <tr><td align="center"><input type="submit" name="ok" value="OUI" size="10"/></td> <td align="center"><input type="submit" name="no" value="NON" size="10"/></td></tr> </table> </body> </html>
comme je t ai dit pour l instant ce n est que du php

Posté : 12 mai 2005, 10:40
par zeus
Il faut que tu fasse un formulaire qui va te diriger vers la page résultat
<html>
  <head>
  </head>
  <body bgcolor="silver">
  <!-- ici ton formulaire -->
    <table width="100%">
      <tr><td colspan="2" align="center">
        <h3>Validation</h3></td></tr>
      <tr><td align="center"><input type="submit" name="ok" value="OUI" size="10"/></td>
        <td align="center"><input type="submit" name="no" value="NON" size="10"/></td></tr>
    </table>
<!-- ici fin de ton formalaire-->
  </body>
</html>  
Qui va te diriger vers une autre page, et dans cette autre page, tu testes quel bouton est cliqué :
<?php
if (isset($_POST["ok"])) {
  //Code si bouton ok
} elseif (isset($_POST["no"])) {
  //Code si bouton no
} else {
  //Mais comment est il arrivé dans ce formualire ?
}
?>

Posté : 12 mai 2005, 11:03
par donny
tu vois avec ce code ,le code s execute sur la meme page,car dans l action du formulaire on ne peut mettre qu une adresse de page
Donc moi ce que je veux est que quand je clique sur oui,sur cette meme feuille j insere des donnée sur ma base,je ferme cette boite de dialogue et je retourne sur la page d avant(en rafraichissant les données je ne sais pas si c est possible ) et je la ferme directement,et quand je clique sur non je ferme directement la boite de dialogue et je retoune sur la page d avant.



<html>
<head>
</head>
<body bgcolor="silver">

<?php 

if (!empty($_POST)) { 
        if (isset($_POST['ok'])) { 
        echo'oui';
    } elseif (isset($_POST['no'])) { 
        echo 'non'; 
    } 
} 

?>







<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post"> 
<table width="100%">
<tr><td colspan="2" align="center">
<h3>Validation</h3></td></tr>
<tr><td align="center"><input type="submit" name="ok" value="OUI" size="10"/></td> 
<td align="center"><input type="submit" name="no" value="NON" size="10"/></td></tr> 
</table>
</form>
</body>
merci

Posté : 12 mai 2005, 11:07
par zeus
En suivant mon exemple precedent, ton formulaire doit rediriger vers ta page d'avant et dans le code de traitement, tu ajoute dans ta bdd et dans le code non, tu ne fait rien

resultat :

Si il a cliqué sur oui ou sur non, tu iras sur la page d'avant, mais tu ne vas inserer dans la base que si il a cliqué sur le bouton ok

Posté : 12 mai 2005, 11:11
par rami
A ta place, je gererais ca en javascript du style:
<html>
<head>
</head>
<body bgcolor="silver">

<?php

if (!empty($_POST)) {
    //insertion ds ta base

?>
   <script>
       //rafraichissement de la fenetre qui a ouvert le popup
      window.opener.refresh();
      window.close();
   </script>
<?
}

?>


<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
<table width="100%">
<tr><td colspan="2" align="center">
<h3>Validation</h3></td></tr>
<tr><td align="center"><input type="submit" name="ok" value="OUI" size="10"/></td>
<td align="center"><input type="reset" name="no" value="NON" size="10" onclick="window.close();"></td></tr>
</table>
</form>
</body>

Posté : 12 mai 2005, 11:14
par zeus
Je sais pas si c'est une popup ou pas mais ça sert à rien d'y traiter en JS sur le client vu qu'il devras repasser sur le serveur pour enregistrer sur la base !!!

Selon toi :

page => serveur => popup => popup => serveur (enregistrement base) => page

Selon moi :

page => serveur => popup => serveur(enregistrement base) => page

Posté : 12 mai 2005, 11:19
par rami
Bah si c'est un popup, il a pas le choix, il faut qu'il passe par du JS pour fermer sa fenetre et rafraichir la fenetre qu'il l'a ouverte. Si ce n'est pas un popup, effectivement, on peut se passer de JS en faisaint un header() apres l'insertion ds la base.

donny, donne nous des precisions ! :D

Posté : 12 mai 2005, 11:33
par donny
ma fenetre de validation je l ouvre avec sa

Code : Tout sélectionner

<a href="#" onclick='window.open("valide.php", "PopUp2", "width=200,height=100,location=no,status=no,toolbar=no,scrollbars=no")' >modifier</a>
en faite j ai un formulaire qui lui est alimenté à partir d une base de donnée, c est à dire que sur le formulaire on peut se deplacerà l aide de lien :
debut:precedent:suivant:fin
modifier

et donc ce que je veux est que quand on clique sur le lien modifier je modifie les elements dans ma base mais avant de modifier c est la qu intervient la boite de validation.
donc je te suis bien,dans le action du formulaire dans la boite de dialogue j emet l adresse du formulaire ou se trouve le line modifier(formulaire avec les donnée).
Et quand je clique sur oui alors à l aide de $post je sais quel bouton à été cliquer
et donc sur mon formulaire avec les données je rajoute une condition
si on a cliquer sur le bouton oui alors oon ajoute les donnée dans la base
sinon on ne fait rien

??

Posté : 12 mai 2005, 11:40
par zeus
oki !!!! J'avais mal compris !!!

Alors en fait, ce que tu doit faire, c'est que, comme le dit rami, tu doit diriger ton formulaire vers ton popup et tester quel bouton à été cliqué. Si c'est le bouton ok, tu enregistres dans ta base et dans tout les cas, tu execute le code javascript suivant :

Code : Tout sélectionner

<script language='javascript'> window.opener.location.reload(); window.close(); </script>
Qui va rafraichir la fentre aui a ouvert le popup et qui va fermer le popup !!!

Je suis sûr que ça marche, j'ai fait la même chose il y a deux jours

Posté : 12 mai 2005, 11:41
par rami
Dans ca cas, je ne vois pas l'interet de passer par une popup. Pourquoi ne pas faire un truc du sytle:
<input type="submit" value="Modifier" onclick=" return confirm('Vraiment modifier?')">
Si on clique sur OK, alors ca execute l'action de ton formulaire (ici un UPDATE de ta table), si on clique sur Annuler, ca ne fait rien.

Je sais pas si c'est ce que tu voulais faire...

Posté : 12 mai 2005, 11:43
par zeus
rami n'a pas tord !!! Personnellement, je me servait de la popup pour inserer le formulaire de modification