Pb pour fermer un formulaire et raffraichir la page appelante [Résolu]

saibe 46 Messages postés lundi 19 mai 2003Date d'inscription 16 avril 2009 Dernière intervention - 7 sept. 2007 à 20:24 - Dernière réponse : saibe 46 Messages postés lundi 19 mai 2003Date d'inscription 16 avril 2009 Dernière intervention
- 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
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 8 sept. 2007 à 10:40
3
Merci
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();

Merci malalam 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 75 internautes ce mois-ci

Commenter la réponse de malalam
Meilleure réponse
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 8 sept. 2007 à 13:31
3
Merci
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...

Merci malalam 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 75 internautes ce mois-ci

Commenter la réponse de malalam
saibe 46 Messages postés lundi 19 mai 2003Date d'inscription 16 avril 2009 Dernière intervention - 8 sept. 2007 à 11:45
0
Merci
hello malalam !


nikel; merci beaucoup !!!


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


merci encore

saibe
Commenter la réponse de saibe
saibe 46 Messages postés lundi 19 mai 2003Date d'inscription 16 avril 2009 Dernière intervention - 8 sept. 2007 à 13:15
0
Merci
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
Commenter la réponse de saibe
saibe 46 Messages postés lundi 19 mai 2003Date d'inscription 16 avril 2009 Dernière intervention - 9 sept. 2007 à 14:21
0
Merci
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
Commenter la réponse de saibe

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.