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

  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.

  7. #7
    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
    Ok je vois.
    �a parait super simple quand tu le dis mais...

    Mon bouton PDF ressemble � �a :

    Code php : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
        // Download PDF Button 		
        echo '<div style="left:57em;" id="boton_pdf">';
       	echo "<input class='boton_envio' type='button' value='PDF' onclick='location.href=\"resultados_pdf.php\";'/>";
        echo '</div>';

    Et tu veux que je rajoute le code d'AJAX ici ? Je pensais qu'il fallait le mettre dans une balise <script>. :/

    D'autre part, il y a un truc que je ne pige toujours pas...
    Dans mon resultat.php J'ai ce code :

    Code php : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    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>";

    Qui appelle cette fonction :

    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>

    Du coup je ne vois pas comment je peux pr�ciser les variables � r�cup�rer dans le code AJAX vu qu'il n'y a pas explicitement le nom de ces variables...
    Tu vois ce que je veux dire ?

  8. #8
    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 va y arriver

    1) Il faut changer ton code de bouton comme �a :

    Code php : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
        // Download PDF Button 		
        echo '<div style="left:57em;" id="boton_pdf">';
       	echo "<input class='boton_envio' type='button' value='PDF' onclick='generePDF() ;'>";
        echo '</div>';

    Et ajouter le code de la fonction :

    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
     
    <script language="javascript">
     
    function generePDF()
    {  
    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", "res_pdf.php" + param + "&random=" + Math.random(), true);
    xmlhttp.send();
    }
    </script>

    2)
    L'id�e n'est pas de r�cup�rer les valeurs calcul�es mais seulement les valeurs des <SELECT>. Ils sont cens�s avoir un id unique donc tu peux retrouver facilement leur value et peux recalculer � la g�n�ration du PDF les valeurs associ�es � partir des values de <SELECT> pass�es en param�tres (en r�utilisant ta fonction de calcul).

    Dans l'ajax :

    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    document.getElementById.(id_unique_select).options[document.getElementById(id_unique_select).selectedIndex].value

  9. #9
    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 te remercie de ton aide efficace =)

    Je vais suivre tes indications

  10. #10
    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, j'ai r�ussi � faire ce que je voulais ! =)
    Au top Periah, t'assures chaussures

+ 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