Pb pour fermer un formulaire et raffraichir la page appelante

Résolu
saibe Messages postés 46 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 16 avril 2009 - 7 sept. 2007 à 20:24
saibe Messages postés 46 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 16 avril 2009 - 9 sept. 2007 à 14:21
hello tout le monde !
tout est dit dans le titre. je débute, donc c'est un exemple super simple
j'ai cherché po mal sur le net et la plupart des codes sont en javascript. donc j'ai essayer de l'intégrer au php mais ça fonctionne po ;((
je vous envoie le code :

dans la page principale affiche.php :
<html>

// pour ouvrir le formulaire d'insertion en popup
<script language= "javascript" type="text/javascript">
function formul_pop() {
 window.open(" formulaire.htm ", "child", "height =200,width=200,menubar='no',toolbar='no',location='no',status='no',scrollbars='no'");
}
</script>

// le bouton qui appelle le script

// le reste du code qui affiche la base de données en php
//.......

le formulaire.htm :
<html>

/* un essai de script pour raffraichir la page principale
j'essaie de garder la page parent en variable pour la passer à insert.php*/

<script language="javascript" type="text/javascript">
 var wparent;
 wparent = window.opener;
 window.opener.reload();
 window.selfclose();
</script>

// le formulaire proprement dit
<form action="Insert_BDD.php" method="post">
Nom :

Prénom :

Tél. :

Age :

</form>



</html>

la fonction insert_BDD.php
<?php
include("Connect_BDD.php");

// la requete pour insérer
$requete = "
insert into carnet (nom, prenom, telephone, age) 
values ('$nom','$prenom','$tel','$age')";
$ok=mysql_query($requete,$db);
if (!$ok){echo 'Impossible d\'insérer...';}


?>
// le script qui ne fonctionne pas avec la variable parent pour raffraichir la fenetre principale
<script language="javascript" type="text/javascript">
 $parent.reload();
window.selfclose();
</script>

vala, les requêtes SQL fonctionnent mais insert_BDD.php reste dans le popup qui ne disparait po et la fenêtre principale affich.php ne se rafraichit po.

pb de page php client serveur, pb de script ?
merci de m'aider.
saibe

5 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
8 sept. 2007 à 10:40
Hello,

inutile de stocker ta variable "fenêtre parente" : le navigateur sait très bien où il en est.window.opener.location.reload();
Pour la fermeture : self.close(); ou window.close();
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
8 sept. 2007 à 13:31
Re,

eh bien tu passes tes paramètres à ton popup.
"fenetre" est une url. par exemple: popup.php.
Tu veux passer le "nom"!

Après soumission, ton url doit devenir :
popup.php?nom=$_POST['nom']
et tu récupères dans ta popup dans :
$_GET['nom']

Cest très simplifié là, hein...
3
saibe Messages postés 46 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 16 avril 2009
8 sept. 2007 à 11:45
hello malalam !


nikel; merci beaucoup !!!


gt pas loin, mais j'avais besoin de quelqu'un de plus éclairé....


merci encore

saibe
0
saibe Messages postés 46 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 16 avril 2009
8 sept. 2007 à 13:15
rehello !


nouveau pb :


imaginons que je veuille supprimer ou modifier une entrée, il faut que je passe des paramêtres à la popup : comment faire ?


voilà mes codes :
Affiche.php
// ......
// le reste du code qui affiche la base de données en php
// justement le voilà
 Nom,
 Prénom,
 Age,
 Téléphone,
 Supprimer,

<?php

include(\"Connect_BDD.php\");

$requete = \" select * from carnet\";
$resultat=mysql_query($requete,$db);

while ($tableau=mysql_fetch_array($resultat,MYSQL_ASSOC))
{
$id = $tableau['id_carnet'];
$nom = $tableau['nom'];
$prenom = $tableau['prenom'];
$age = $tableau['age'];
$tel = $tableau['telephone'];
echo \"----
",$nom,", ",$prenom,",
",$age," ans, ",$tel,", ><form action=\"supprime.php\" method=\"post\">
</form>, \";
}

?>






</html>




supprime.php :

<?php
include("Connect_BDD.php");


$requete = "select * from carnet where id_carnet=$id";
$result=mysql_query($requete,$db);
if (!$result){echo 'Impossible de supprimer...'; exit;}


?>

cela fonctionne mais affiche supprime.php bref rien et quand je reviens à affich.php elle n'est po réactualisée automatiquement...
je n'arrive pas à mettre supprime.php en popup avec une form de validation du genre :
<?php
include("Connect_BDD.php");


$requete = "select * from carnet where id_carnet= $id";
$result=mysql_query($requete,$db);
if (!$result){echo 'Impossible de requetter...'; exit;}


$tableau=mysql_fetch_array($result,MYSQL_ASSOC);
$id = $tableau['id_carnet'];
$nom = $tableau['nom'];
$prenom = $tableau['prenom'];


echo "êtes vous sur de supprimer ", $nom, $prenom;


echo "
<form action="supprime2.php" method="post">

</form>";


?>

avec le code du précédent supprime.php dans supprime2.php

j'ai donc essayé :
dans le tableau de affiche.php à la place de la form :

avec la fonction pop_it qui remplace formul_pop comme suit :
function pop_it(fenetre, id) {
 window.open(fenetre, "child", "height =200,width=200,menubar='no',toolbar='no',location='no',status='no',scrollbars='no'");
// comment lui faire passer id ?
}

dans supprime.htm je placerai une form avec un appel à supprime.php qui supprimera l'entrée après un message de validation

je pense que je me prend la tête pour po grand chose mais g besoin d'être éclairé une fois encore

merci
saibe
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
saibe Messages postés 46 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 16 avril 2009
9 sept. 2007 à 14:21
Re,
encore merci. en effet ct tout simple;
pour ceux que ça intéresse vala donc le code :
j'ai mis en rouge tout ce que malalam m'a appris

dans affiche.php :
<script language= "javascript" type="text/javascript">
function pop_it(fenetre, id) {
      if(id!=0){fenetre = fenetre+"?id="+id;}//pour passer l'id à la popup via l'url
      window.open(fenetre, "child", "height=200,width=200,menubar='no',toolbar='no',location='no',status='no',scrollbars='no'");
}
</script>
// avec dans le tableau colonne supprimer
<td></td>//avec id extrait de la base

supprime.php :
<?php
include("Connect_BDD.php");



echo $_GET['id'];
/
/ qui récupère l'id


$requete = "select * from carnet where id_carnet=$id";
$result=mysql_query($requete,$db);
if (!$result){echo 'Impossible de supprimer...'; exit;}


$tableau=mysql_fetch_array($result,MYSQL_ASSOC);
$nom = $tableau['nom'];
$prenom = $tableau['prenom'];


echo "êtes vous sûr de supprimer ", $nom, " ", $prenom;


echo "
<form action="supprime2.php" method="post">

</form>";


?>

et enfin supprime2.php :
<?php
include("Connect_BDD.php");


$requete = "delete from carnet where id_carnet=$id";
$result=mysql_query($requete,$db);
if (!$result){echo 'Impossible de supprimer...';}


?>
// pour réactualiser la fenêtre appelante et fermer la popup
<script language="javascript" type="text/javascript">
 window.opener.location.reload();
 self.close();
</script>

j'ai vraiment beaucoup à apprendre : tant mieux
si quelqu'un trouve plus simple (un seul fichier supprime.php par exemple) n'hésitez po...
merci malalam (joli palindrome ;) et bravo pour le site
a+
saibe
0
Rejoignez-nous