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

Langage PHP Discussion :

Récuperer un tableau javascript vers php


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 10
    Points : 11
    Points
    11
    Par défaut Récuperer un tableau javascript vers php
    Bonjour,
    actuellement j'ai un petit souci avec un tableau javascript dont je voudrais récuperer le contenu vers php.

    Je vous explique rapidement ce que je souhaite faire :
    - La 1ere page est un formulaire contenant un mini calendrier javascript dont on peut sélectionner plusieurs dates qui sont stockées dans un tableau.
    - A la validation du formulaire (et donc des dates choisies), je voudrais pouvoir récupérer ces dates, pour un nouvel affichage php, et pouvoir les insérer dans la BDD par la suite.

    le script du formulaire :
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    <form action="confirmation.php" method="post"> 
    <a id="trigger" href="#">Choisir dates</a>
    <div id="output"></div>
    <script type="text/javascript">
    //<![CDATA[
     
       // the default multiple dates selected,
        // first time the calendar is displayed
        var MA = [];
     
        function closed(cal) {
     
          // here we'll write the output; this is only for example.  You
          // will normally fill an input field or something with the dates.
          var el = document.getElementById("output");
     
          // reset initial content.
          el.innerHTML = "";
     
          // Reset the "MA", in case one triggers the calendar again.
          // CAREFUL!  You don't want to do "MA = [];".  We need to modify
          // the value of the current array, instead of creating a new one.
          // Calendar.setup is called only once! :-)  So be careful.
          MA.length = 0;
     
          // walk the calendar's multiple dates selection hash
          for (var i in cal.multiple) {
            var d = cal.multiple[i];
            // sometimes the date is not actually selected, that's why we need to check.
            if (d) {
              // OK, selected.  Fill an input field.  Or something.  Just for example,
              // we will display all selected dates in the element having the id "output".
              el.innerHTML += d.print("%A, %d %B %Y") + "<br />";
     
              // and push it in the "MA", in case one triggers the calendar again.
              MA[MA.length] = d;
            }
          }
          cal.hide();
          return true;
        };
     
        Calendar.setup({
          align      : "BR",
          showOthers : true,
          multiple   : MA, // pass the initial or computed array of multiple dates to be initially selected
          onClose    : closed,
          button     : "trigger"
        });
    //]]>
    </script>
    j'ai donc essayé une methode que j'avais vu ailleurs, en mettant un champs hidden du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <input id="un_id" type="hidden" name="new_tab_js" />
    <script type="text/javascript">
    new_tab_js = MA.join(";");
    </script>
    pour par la suite le récuperer dans la 2nde page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $tab_js = $_POST['new_tab_js'];
    $tab_php = explode(";", $tab_js);
    echo $tab_php[0];
    mais sur la 2e page lors de la validation j'obtiens ça :
    [object HTMLInputElement]
    Si vous avez une quelconque méthode ou idée pour faire passer ce tableau de javascript à php je suis preneur.
    Merci d'avance =)

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Que donnel'instruction suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump($_POST['new_tab_js']);

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 10
    Points : 11
    Points
    11
    Par défaut
    merci de la réponse rapide, mais je pense avoir déjà trouvé une solution en fait :

    petite modif au niveau de la récuperation javascript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <input id="un_id" type="hidden" name="un_id" />
    <script type="text/javascript">
    function validationMA(){
    	document.getElementById('un_id').value = document.getElementById('output').innerHTML;
    	document.getElementById('un_id').post();
    }
    </script>
    ainsi que du bouton de soumission
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" value="Soumettre" onclick="javascript:validationMA();" />
    et à la page suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $tab_js = $_POST['un_id'];
     
    $tab_php = explode("<br>", $tab_js);
     
    echo $tab_php[0];
    donc ca m'affiche bien la 1ere valeur du tableau =)
    (<br> est utilisé dans explode car le script de sélection de mes dates les sépare automatiquement par un <br>)

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

Discussions similaires

  1. Passer l'indice d'un tableau Javascript vers PHP
    Par Hastur dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 10/06/2009, 19h59
  2. [AJAX] Tableau Javascript vers PHP
    Par Dédé86 dans le forum AJAX
    Réponses: 3
    Dernier message: 07/06/2009, 14h36
  3. [PHP-JS] récuperer un tableau javascript en php
    Par tchoukapi dans le forum Langage
    Réponses: 2
    Dernier message: 13/05/2007, 21h24
  4. [PHP-JS] Communication Javascript vers PHP
    Par wwave dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 22/02/2006, 17h50
  5. [PHP-JS] lien javascript vers php
    Par guttts dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/08/2005, 23h00

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