IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Afficher pdf en réponse d'un HttpRequest


Sujet :

AJAX

  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 40
    Par défaut [AJAX] Afficher pdf en réponse d'un HttpRequest
    Bonjour, je vous soumet un problème que je rencontre actuellement. J'utilise la la bibliothèque FPDF afin de générer un pdf récapitulatif. L'appel du script PHP se fait en utilisant xhrPost (c'est un HttpRequest), une fonction du framework dojo. Une fois la réponse "res" obtenu j'aimerais l'afficher dans un nouvelle onglet ou tout simplement dans une nouvelle page. le script FPDF est pdfRecap.php. Je ne donne pas mon code FPDF car il fonctionne. Ma question est comment envoyer cette réponse à une page du browser.

    Si quelqu'un à une idée, merci pour vos suggestions

    mon code javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    function pdfRecap(){
        		var ecol ="";
        		var combonoeuds  =  dojo.query('input[id^="Selectcol"]');
        		var posref = dojo.indexOf(combonoeuds,'Référence');
        		
        		for (var i=0; i < combonoeuds.length; i++) {
        			ecol = ecol + dijit.byId('Selectcol'+i).attr('displayedValue');
        			if ( i<(combonoeuds.length - 1)) {
       					ecol = ecol + ",";
           			}
        		}
      			var kw = {
      		  		content:{ecol: ecol, posref: posref},
      				form: dojo.byId("infoCompl"), 
        			url: "tarifAch/pdfRecap.php",
        			load: function(res){
      		  	// Ici "res" retour de la réponse du serveur
      			},
       		 	error: function(data){
        	 	alert("une erreur s'est produite !" + data);
       	 		},
       	 		timeout: 10000
        		};
    		dojo.xhrPost(kw);	
    	  	
    	   	}

  2. #2
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 40
    Par défaut
    Bonjour je n'ai pas de réponse à ma question; ou elle n'a pas de sens ou ce n'est pas possible. Si quelqu'un pouvait me le dire. Est il possible d'afficher la réponse de la fonction xhr dans uns nouvelle fenêtre sachant qu'il sagit d'un pdf ?

    Merci pour vos réponses même s'il s'agit de dire ce n'est pas possible en ajax. Je suis débutant en la matière.

  3. #3
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    sans rien pouvoir affirmer (jamais testé), ça me semble très improbable.
    Ajax renvoie du texte (string ou XML) dans responseText ou responseXML.

    Or tu veux transmettre du binaire, a priori ...
    Une fois la réponse "res" obtenu j'aimerais l'afficher dans un nouvelle onglet ou tout simplement dans une nouvelle page.
    Une fois le top reçu via Ajax, il te suffit d'afficher un lien (<a href=...>) vers ce nouveau PDF non ?
    EDIT : ou même de l'ouvrir automatiquement via window.open()

    A+

  4. #4
    Membre confirmé Avatar de simotaqi
    Inscrit en
    Février 2010
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 144
    Par défaut
    bonjour,
    ajax utilise seulement le responseText ou responseXML , et n'utilise aucune methode pour retourner du binaire (ex : pdf) pourtant , je crois qu'il ya une solution

    essais d'inserer cette ligne dans le coté serveur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo '<iframe type="pdf" src="ici le repertoire ou se trouve ton pdf"><iframe>';
    dans le code javascript qui met la reponse dans un div , inserez par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById('ton-div').innerHTML=req.responseText;

    et bonne programmation avec ajax

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Salut.

    Il est possible d'échanger via AJAX des données binaires, en revanche, JavaScript ne sait pas gérer les formats autres que textuels. Cette méthode ne permet donc que de récupérer les données textuelles d'un document (par exemple, les données exif d'une image). Mais en aucun cas, tu ne pourras transmettre un fichier PDF (sans parler des considérations de limitation de taille des données échangées, car j'imagine mal un PDF faisant 3 ou 4 ko).

    Cependant, la solution de simotaqi est une alternative envisageable.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

Discussions similaires

  1. [Sicstus] Afficher toute la réponse
    Par djidane39 dans le forum Prolog
    Réponses: 1
    Dernier message: 14/05/2007, 18h23
  2. Afficher PDF dans Page WEB ?
    Par Kenshin86 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 19/03/2007, 17h54
  3. Réponses: 3
    Dernier message: 29/11/2006, 10h45
  4. [AJAX] Afficher 3 messages par page dans un livre d'or
    Par rob2-9 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 17/11/2006, 11h17
  5. [AJAX] Afficher deux valeurs
    Par Arfigado dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 08/09/2006, 15h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo