Page 1 sur 1
aperçu dans nouvelle fenêtre resultant d'un formulaire
Posté : 22 mars 2006, 17:31
par BeRoots
salut tous le monde
je cherche à faire un aperçu
dans une nouvelle fenêtre à partir du contenu de deux champs de formulaire.
j'ai deja avancer un peu ma fonction php.
question:
je voulais savoir si il était poussible depuis php d'ouvrir une page dans une nouvelle fenètre?
sur cette nouvelle page il y aura echo des contenus des champs du formulaire contenant les info à afficher
voici mon debut de code:
<?php
// on recupere par post le formulaire
$manif_date = $_POST['champ_date'];
$manif = $_POST['content'];
// verifie si les champs obligatoires sont bien remplient
if ($manif_date == '' || $manif =='')
{
header("location: ../../0_admin/admin_manif.html");
die;
}
// si on clique sur aperçu, ouverture popup
elseif (isset($_POST['Apercu']))
{
// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx ici ouverture popup aperçu xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
}
// XXXXXXXXXXXXXXXXXXXX si on clique sur Sauver XXXXXXXXXXXXXX
elseif (isset($_POST['Sauver']))
{
//envoi en db ...
// redirection
header("location: ../../0_admin/admin_manif.html");
exit;
}
?>
merci d'avance pour vos conseil

Posté : 22 mars 2006, 17:37
par Ryle
A priori non, php ne peut pas ouvrir de nouvelles fenêtres (côté serveur on ne touche pas au navigateur

), en revanche, tu peux préciser dans ta balises <form> l'attribut target, pour que les données soient envoyées vers une nouvelle fenêtre
Et en jouant un peu avec du javascript (document.monFormulaire.target="_self") , tu peux modifier cette valeur pour que le preview se fasse dans une nouvelle fenêtre, mais que le submit se fasse dans la même

Posté : 22 mars 2006, 17:43
par BeRoots
peut tu m'en dire un peu plus sur ta méthode car c'est encore flou pour moi
si des modo pouvaient déplacer se sujet sur js 
Posté : 22 mars 2006, 18:06
par Ryle
bah c'est qu'une suggestion pour le preview, mais cela t'oblige à faire deux pages distincte pour l'apperçu et l'enregistrement :
Sur la partie formulaire je ferais donc ainsi (bon ca sera à tester quand même hein

) :
Code : Tout sélectionner
<form name="form" method="post" action="sauver.php" target="_self"> <!-- par défaut -->
...
<!-- pour l'apperçu on change l'action et le target, et on soumet -->
<input type="button" value="Preview"
onClick="document.form.action='preview.php';
document.form.taget='_blank';
document.form.submit();">
<!-- idem pour l'enregistrement (au cas où il y aurait eu un apperçu avant -->
<input type="button" value="Enregistrer"
onClick="document.form.action=sauver.php';
document.form.taget='_self';
document.form.submit();">
</form>
Et tu peux ainsi récupérer tes données dans preview.php dans une nouvelle fenêtre pour les afficger, et/ou dans sauver.php sur la même fenêtre pour les enregistrer

Posté : 23 mars 2006, 02:56
par BeRoots
je ne voit pas trop pourquoi ça fera deux document distinct
ne serai ce pas un formulaire et deux .php (preview et sauver) pour le traitement
Posté : 23 mars 2006, 10:37
par Ryle
ne serai ce pas un formulaire et deux .php (preview et sauver) pour le traitement
Ben si.. c'est pas ce que j'ai dit ? je me suis peut être mal exprimé, mais je pensais effectivement à 2 fichiers php (voir le code) : sauver.php et preview.php, chaque bouton redirigeant l'envoi du formulaire vers la page qui va bien

Posté : 23 mars 2006, 13:32
par BeRoots
bon j'ai essayer mais rien ne se passe lorsqu'on clique sur l'un ou l'autre des boutons
si quelqu'un voit pourquoi

Posté : 23 mars 2006, 13:37
par BeRoots
ooops, j'avit oublier name dans le formulaire.
bon c'est pas trop mal mais sa s'ouvre dans la même fenetre lorsqu'on clique sur aperçu
EDIT: j'ai essayer ceci:
<input type="button" value="Aperçu" onClick="document.form.action='../includes/admin/preview_manif.php'; window.open('preview_manif.php', 'preview_manif'); document.form.submit();" />
sa s'ouvre bien dans une nouvelle fenetre mais la fenetre principale pointe aussi vers preview_manif.php alors qu'elle devrai etre inchanger
si quelqu'un a une idée pour que ça s'ouvre dans une autre fenetre sans alterer la premiere fenetre

Posté : 23 mars 2006, 15:07
par Ryle
Ma faute.. j'ai oublié le R de taRget dans les commandes javascript, et une apostrophe dans le deuxième bouton... sorry
Code : Tout sélectionner
<form name="form" method="post" action="sauver.php" target="_self"> <!-- par défaut -->
...
<!-- pour l'apperçu on change l'action et le target, et on soumet -->
<input type="button" value="Preview"
onClick="document.form.action='preview.php';
document.form.taRget='_blank';
document.form.submit();">
<!-- idem pour l'enregistrement (au cas où il y aurait eu un apperçu avant -->
<input type="button" value="Enregistrer"
onClick="document.form.action='sauver.php';
document.form.taRget='_self';
document.form.submit();">
</form>
(t'es pas obligé de mettre le R en majuscule toi

)
Posté : 23 mars 2006, 21:18
par BeRoots
ok j'ai corrigé mais c'est toujour pareil: pas d'ouverture dans une nouvelle fenetre mais plutot dans la même.
si quelqu'un voit pourquoi

Posté : 24 mars 2006, 04:42
par BeRoots
bon je laisse tomber l'utilisation de js car j'ai mieux en php vu ce que je souhaite faire
sujet abandonné

Posté : 24 mars 2006, 13:09
par Ryle
hum... bizare.. je viens d'essayer avec le code que je t'ai donné en le mettant directement seul dans une page html (il faut mettre les R de target en minuscule) et cela fonctionne bien
Par contre je veux bien connaitre ta solution php, ça peut toujours être utile
Edit : bon ben non, c'est bon en fait, j'ai vu ce que tu as fait dans l'autre topic

Posté : 24 mars 2006, 13:54
par BeRoots
c'est encore à pofiner mais sa sera 100% sans JS
