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 :)

Code : Tout sélectionner

<form ... target="_blank">
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 :wink:


si des modo pouvaient déplacer se sujet sur js
:oops:

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 :-k

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 :cry:

si quelqu'un voit pourquoi :wink:

Posté : 23 mars 2006, 13:37
par BeRoots
ooops, j'avit oublier name dans le formulaire. :oops:

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&ccedil;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 :pouce:

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 :roll:

sujet abandonné :wink:

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 :wink: