Bonjour à tous,
Je suis bloqué voilà 2 jours.
J'ai un site en intranet qui gère une partie des fonctionnalités de ma boîte (agence de voyages). J'ai développé sur ce site tout un tas de fonctionnalités, construction de circuits, devis au centième de seconde, etc... Actuellement, j'ai tout un tas de formulaires qui s'ouvrent dans de petits cadres dans les diverses pages mais ça commence à devenir lourd et peu agréable pour la navigation.
J'ai donc imaginé que pour certains formulaires, je les ouvrirais en popup, et après validation, avec js je raffraichirais la page parente et ensuite la popup se fermerait automatiquement...
Mais voilà je suis bloqué...
1.- Ouvrir la popup, pas de souci.
2.- Traiter le formulaire validé, ok mais c'est là où ça bloque car en fait la popup se ferme avant que le formulaire ne puisse se traiter...
3.- Raffraichir la page parente, ok
4.- Fermer le popup, ok...
J'ai essayé d'envoyer les données à la page paente et là pas de souci, je peux traiter mon formulaire mais le souci est qu'en cas d'actualisation de la page involontaire on risque de revalider le formulaire (double traitement) donc l'optimum serait que le formulaire soit validé sur la popup et qu'ensuite celle-ci raffrachisse la page mère et se ferme...
Voici mes scripts d'essai:
Premièrement ma page mère (parente)
Et ma popup
J'ai essayé tout un tas de trucs mais sans succès, je suis sûr qu'en fait c'est hyper facile... mais javascript, je commence à m'y plonger mais c'est pas encore mon truc... Une idée?
Modifié par djkori (28 Apr 2011 - 18:03)
Je suis bloqué voilà 2 jours.
J'ai un site en intranet qui gère une partie des fonctionnalités de ma boîte (agence de voyages). J'ai développé sur ce site tout un tas de fonctionnalités, construction de circuits, devis au centième de seconde, etc... Actuellement, j'ai tout un tas de formulaires qui s'ouvrent dans de petits cadres dans les diverses pages mais ça commence à devenir lourd et peu agréable pour la navigation.
J'ai donc imaginé que pour certains formulaires, je les ouvrirais en popup, et après validation, avec js je raffraichirais la page parente et ensuite la popup se fermerait automatiquement...
Mais voilà je suis bloqué...
1.- Ouvrir la popup, pas de souci.
2.- Traiter le formulaire validé, ok mais c'est là où ça bloque car en fait la popup se ferme avant que le formulaire ne puisse se traiter...
3.- Raffraichir la page parente, ok
4.- Fermer le popup, ok...
J'ai essayé d'envoyer les données à la page paente et là pas de souci, je peux traiter mon formulaire mais le souci est qu'en cas d'actualisation de la page involontaire on risque de revalider le formulaire (double traitement) donc l'optimum serait que le formulaire soit validé sur la popup et qu'ensuite celle-ci raffrachisse la page mère et se ferme...
Voici mes scripts d'essai:
Premièrement ma page mère (parente)
<?php
// Toutes les infos concernant le Header
include '../../includes/config.jun.php';
include '../../includes/infos_header.jun.php';
if(empty($id_region))
{
$id_region=2;
}
?>
<script type="text/javascript">
window.name="maman";
</script>
<html>
<title>Fenetre Mere</title>
<h1>Page mère</h1>
<?php
$requete=' SELECT id_ville, nom_ville FROM villes WHERE id_region='.$id_region.' ORDER BY nom_ville';
$villes=query($requete, $connect);
$i=0;
while($donnees=mysql_fetch_assoc($villes))
{
$id_ville[$i]=$donnees['id_ville'];
$nom_ville[$i]=$donnees['nom_ville'];
++$i;
}
echo '<ul>';
foreach($id_ville as $key => $value)
{
echo '<li>'.$key.': '.$nom_ville[$key].'</li>';
}
echo '</ul>';
echo '<p><a href="popup.php" onclick="window.open(\'popup.php?form_inc=sum_ville&id_region='.$id_region.'\', \'Popup\', config=\'height=400, width=400, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, directories=no, status=no\'); return false;">
Ajouter une ville</a></p>'
?>
</html>
Et ma popup
<?php
// Toutes les infos concernant le Header
include '../../includes/config.jun.php';
include '../../includes/infos_header.jun.php';
$id_region=$_GET['id_region'];
if($_POST['insert_ville']==1 AND !empty($_POST['insert_nom_ville']))
{
$requete=' INSERT INTO villes (nom_ville, id_region, validation_ville) VALUES ('.Insert($_POST['insert_nom_ville']).', '.Insert($_POST['id_region']).', 1)';
$insert_ville=query($requete, $connect);
}
?>
<html>
<title>Fenetre Popup Fille</title>
<script type="text/javascript">
// fonction qui raffraichit la fenêtre mère et ferme la popup (activé au submit)
function refreshParent() {
window.opener.location.href =window.opener.location.href;
if (window.opener.progressWindow)
{
window.opener.progressWindow.close()
}
window.close();
}
</script>
<h1>Ajouter une ville</h1>
<form method="post" action="popup.php" onSubmit="refreshParent()">
<input type="hidden" name="insert_ville" value="1" />
<input type="hidden" name="id_region" value="<?php echo $_GET['id_region']; ?>" />
<p>Ville : <input type="text" name="insert_nom_ville" /></p>
<p><input type="submit" value="Envoyer" /></p>
</form>
</html>
J'ai essayé tout un tas de trucs mais sans succès, je suis sûr qu'en fait c'est hyper facile... mais javascript, je commence à m'y plonger mais c'est pas encore mon truc... Une idée?
Modifié par djkori (28 Apr 2011 - 18:03)