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] Récupération de variables Javascript


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Statistiques et Informatique
    Inscrit en
    Mai 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Statistiques et Informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 22
    Par défaut [AJAX] Récupération de variables Javascript
    Bonjour,

    Tout d'abord merci par avance pour vos réponses, j'espère que vous serez nombreux à m'aider.
    J'ai un fichier resultat.php qui affiche deux tableaux dans lesquels nous avons des variables float.
    J'ai 10 cellules (dans des div) qui proposent une liste déroulante. En fonction du choix sélectionné, nous obtenons un score dans une autre cellule, calculé grâce à une fonction jvscript.

    Voila le code de la cellule qui affiche la liste déroulante :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    echo "<td class='celda_pequenya_2'>";
    echo "<select class='select2' id='d48' onchange='baremos(this,notad48)'>";
        echo "<option selected='selected' value='-1'>Elija un baremo</option>";
        for ($i=0;$i<count($niveles_d48);$i++){
            echo "<option value=$i>".$niveles_d48[$i]."</option>";
        }
    echo "</select>";
    echo "</td>";

    Et voila la fonction JavaScript qu'elle appelle :

    Code javascript : 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
     
    <script language="javascript">
     
    function baremos(desplegable,nota)
    {  
      var nombre_celda = "nota"+desplegable.id ;
      var nivel = desplegable.value;
      var celda = document.getElementById(nombre_celda);
     
      if (nivel!=-1){
      celda.innerHTML = nota[nivel];
      }else{
      celda.innerHTML ='';  
      }
    }
    </script>

    De ce fichier resultat.php, je génère un PDF grâce à la méthode PhpToPdf. Pas de souci, mon PDF apparaît correctement.
    Néanmoins, je n'ai pas trouvé le moyen de récupérer la valeur sélectionnée dans la liste déroulante et la valeur calculée, car vous le savez, le code php est exécuté avant le code jvscript.
    Je me suis donc dit que la meilleure méthode pour récupérer ces valeurs étaient d'utiliser AJAX. Je suis un peu novice mais j'ai lu pas mal de tuto... Mais... Je ne suis pas sûre de ce que je fais et j'aurai besoin des lumières de quelqu'un...

    J'ai essayé d'adapter un code pour ce faire, mais étant donné que ma fonction jvscript peut être appelée plusieurs fois, je ne sais pas comment gérer cela...

    J'ai donc rajouté entre les balises <script> :

    Code javascript : 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 maFonctionAjax(unParametre,action)
    {
       var MonAjax;
       if (window.XMLHttpRequest){
          MonAjax = new XMLHttpRequest(); // Mozilla, Safari, Chrome, Firefox...
       } else if (window.ActiveXObject) {  
          MonAjax = new ActiveXObject('Microsoft.XMLHTTP'); // IE
       } else {
          alert("Change navigator..."); 
          MonAjax = false;
       }
       MonAjax.open('POST',"resultados_pdf.php",true); //méthode pos, fichier php cible
     
       MonAjax.onreadystatechange = function()
       {
          if (MonAjax.readyState == 4 && MonAjax.status == 200)
          {
             if(action=="baremos") { document.getElementById('cela.innerHTML').innerHTML = MonAjax.responseText;}
             if(action=="baremos1") { document.getElementById('nombre_cela').innerHTML = MonAjax.responseText;}
             if(action=="baremos2") { document.getElementById('celda').innerHTML = MonAjax.responseText;}
          }
       }
     
       MonAjax.setRequestHeader('Content-type','application/x-www-form-urlencoded');
       MonAjax.send('unParametre='+unParametre+'&action='+action);                  
    }

    Et j'ai aussi rajouté dans ma fonction jvscript "baremos" ce code :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      maFonctionAjax(celda.innerHTML,"baremos");
      mafonctionAjax(nombre_celda, "baremos1");
      mafonctionAjax(celda, "baremos2");

    Mais là je suis un peu perdue et j'ai l'impression de mal m'y prendre avec AJAX... Un petit conseil ?

  2. #2
    Membre confirmé Avatar de Periah
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2012
    Messages : 27
    Par défaut
    Citation Envoyé par LilyP Voir le message
    Mais là je suis un peu perdu...
    Pour le coup, moi aussi... Tu veux faire quoi? Ou? Et à quel moment?

  3. #3
    Membre averti
    Femme Profil pro
    Statistiques et Informatique
    Inscrit en
    Mai 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Statistiques et Informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 22
    Par défaut

    Je veux générer un PDF, voilà le but initial.
    Du coup, j'ai mon fichier resultat.php qui affiche mes données sous forme de tableaux et y'a certaines cellules où il est possible de selectionner un barème dans une liste. Une fois sélectionné, il calcule un barème qu'il affiche dans une autre cellule. Ce calcul s'effectue via javascript.
    Je veux récupérer la valeur du barème sélectionné dans la liste et la valeur du calcul effectué pour pouvoir ainsi les afficher dans mon PDF...

  4. #4
    Membre confirmé Avatar de Periah
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2012
    Messages : 27
    Par défaut
    Ok. Faut séparer tes traitements alors.

    Tu fais une page_tableau.php et une page_pdf.php.

    Dans ta page_tableau.php, tu crées ton tableau et tu fais tous les calculs. Dans ta page_pdf.php, tu mets tout le traitement de constitution de ton pdf.

    Et sur ta page_tableau, dans l'évènement qui lance la génération du pdf (le click sur un bouton, le onchange d'une liste déroulante, etc) tu mets un code de ce style :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function lancePDF
    {
    var param = "?param1=" + valeur_1 + '&param2=' + param2... ;
     
    xmlhttp = new XMLHttpRequest();
     
    xmlhttp.onreadystatechange = function()
    {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
    {
    /* ici un éventuel traitement à faire après la génération du pdf */
    }
    xmlhttp.open("GET", "page_pdf.php" + param + "&random=" + Math.random(), true);
    xmlhttp.send();
    }

    Tu récupères les paramètres dans ta page_pdf.php avec un $_GET["param1"], $_GET["param2"]...

  5. #5
    Membre averti
    Femme Profil pro
    Statistiques et Informatique
    Inscrit en
    Mai 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Statistiques et Informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 22
    Par défaut
    Merci de ta réponse mais je n'ai pas bien compris....

    En fait dans mon resultat.php j'ai le fameux bouton qui génère le PDF (donc qui renvoie vers res_pdf.php).
    C'est dans res_pdf.php que je crée mon ptit tableau, tout est niquel.

    Tu me suggères donc de rajouter une page_pdf dans laquelle je mets quoi ?

  6. #6
    Membre confirmé Avatar de Periah
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2012
    Messages : 27
    Par défaut
    On reprend...

    Ton fichier resultat.php contient des tableaux. Ces tableaux contiennent des listes déroulantes dans certaines cellules. Le choix d'un item de liste déroulante modifie le contenu d'une autre cellule. Ce fichier contient aussi un bouton "generer pdf". Jusque là, on est d'accord ?

    Ensuite, on a un res_pdf.php qui sert à faire le pdf et qui contient aussi des tableaux. On est toujours bon? Ce sont les mêmes tableaux que dans resultat.php mais avec les valeurs choisies et calculées?

    Ce que tu veux, c'est obtenir dans res_pdf.php les valeurs choisies (et donc les calculées)?

    Si je suis toujours bien alors, il faut que tu reprennes mon précédent post et que tu considères que page_tableau.php c'est ton resultat.php et que page_pdf.php c'est res_pdf.php.

    Il faut que tu rajoutes un appel ajax sur ton bouton de génération de pdf (donc dans resultat.php). Et dans ton res_pdf.php tu fais des $_GET sur les valeurs passées en paramètres.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] générer une variable javascript dynamiquement
    Par luna007 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/12/2008, 10h56
  2. Récupération de variables javascript en C#
    Par Amokrane dans le forum C#
    Réponses: 4
    Dernier message: 30/06/2008, 08h22
  3. récupération de variable javascript
    Par esther60 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 20/03/2008, 21h35
  4. [AJAX] Récupération de variable php
    Par akara dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 30/07/2007, 15h52
  5. [AJAX] Ajax, innerHTML et variable javascript
    Par philippejuju dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/01/2007, 11h30

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