1. Récupérer une variable javascript - 2.Ouvrir une nouvelle fenêtre

1. Récupérer une variable javascript - 2.Ouvrir une nouvelle fenêtre - PHP - Programmation

Marsh Posté le 17-03-2008 à 10:49:44    

Yo ! :hello:  
 
J'avais un petit problème que j'ai résolu cradement mais vu que c'est temporaire on s'en fout. Sauf que j'aurais bien voulu savoir comment vous auriez fait dans mon cas, ça peut toujours servir par la suite :)
 
Pour planter la situation, sur une page j'ai une form, et quand je valide la form, je recharge la page. Dans cette page, je crée un fichier xls que je fous dans un rep et que j'envoie par mail à une adresse fixe.
 
Vu que pour l'instant c'est en test, j'ai pas envie d'envoyer une tonne de mails bidons, donc j'ai d'abord voulu mettre une input box pour demander au testeur de mettre l'email qui lui chante. 1er problème, je sais pas comment récupérer la valeur renvoyée par javascript et la foutre dans ma fonction php mail :/
Cette solution aurait été la plus pratique mais j'ai pas trouvé comment faire.
 
Du coup j'ai opté pour le forçage du téléchargement du fichier xls. Quand je recharge ma page, j'ai du mettre un tag javascript pour ouvrir la page avec l'url et les bons paramètres. D'où la 2eme question, est-ce qu'il y a moyen de faire ça en php ou pas ? J'essaye d'éviter le javascript au max.
 
Merci  :hello:  
 

Reply

Marsh Posté le 17-03-2008 à 10:49:44   

Reply

Marsh Posté le 17-03-2008 à 10:55:43    

si ton formulaire est en post ou en get je vois pas trop ou est la difficulté de récuperer le mail qui est dans le champ input...
 
sinon pour ouvrir le fichier xls il suffit de jouer avec les headers :
 

Code :
  1. <?php
  2.     $export_file = "my_name.xls";
  3.     ob_end_clean();
  4.     ini_set('zlib.output_compression','Off');
  5.    
  6.     header('Pragma: public');
  7.     header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );                  // Date in the past     
  8.     header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT');
  9.     header('Cache-Control: no-store, no-cache, must-revalidate');     // HTTP/1.1  
  10.     header('Cache-Control: pre-check=0, post-check=0, max-age=0');    // HTTP/1.1
  11.     header ("Pragma: no-cache" );
  12.     header("Expires: 0" );
  13.     header('Content-Transfer-Encoding: none');
  14.     header('Content-Type: application/vnd.ms-excel;');                 // This should work for IE & Opera
  15.     header("Content-type: application/x-msexcel" );                    // This should work for the rest
  16.     header('Content-Disposition: attachment; filename="'.basename($export_file).'"');
  17. ?>

 
(récup de php.net)

Reply

Marsh Posté le 17-03-2008 à 10:58:02    

il manque juste  

Code :
  1. readfile($export_file);

Reply

Marsh Posté le 17-03-2008 à 11:32:37    

L'email ne fait pas parti du formulaire. C'est un truc bidon, pour les tests. J'veux pas m'amuser à le rajouter dans la form et tout ce qui s'en suit [:ocube]
 
Pour l'ouverture du fichier, ce code, il faut le mettre dans un nouveau fichier (en fait, il faut pas de html avant). Le problème c'est pas d'ouvrir le fichier, ça ça marche, c'est de lancer la page avec les paramètres, autrement qu'en javascript.
 
Merci d'avoir pris le temps en tout cas :D

Reply

Marsh Posté le 17-03-2008 à 11:36:51    

je comprends pas ce que c'est que "ta page avec les parametres"

Reply

Marsh Posté le 18-03-2008 à 03:16:46    

Par là j'veux dire "Ouvrir une nouvelle fenêtre avec les paramètres Get qui vont bien", genre ouvrir un nouveau browser donc, ou une nouvelle fenêtre avec pour URL blabla.php?param1=sdfgdf&param2=prout

Reply

Marsh Posté le 18-03-2008 à 10:01:36    

le php ne pourra pas te faire quelquechose comme ca, car il est executé coté serveur... donc html/js

Reply

Marsh Posté le 18-03-2008 à 13:16:43    

Ah ouais merde, j'y ai pas pensé à ça :/

 

Et pour récupérer les une variable javascript et la passer à php, y a moyen de faire ça ou c'est pas possible ?

 

Merci d'avoir pris le temps de répondre en tout cas ! :)


Message édité par godbout le 18-03-2008 à 13:18:04
Reply

Marsh Posté le 19-03-2008 à 09:54:19    

oui y a moyen... mais c'est de l'ajax....
http://www.editeurjavascript.com/t [...] script.php

Reply

Marsh Posté le 19-03-2008 à 09:59:20    

Intéressant [:super chinois]
J'en ai déjà entendu parler mais jamais utilisé :)
 
Merci !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed