Passer une variable javascript avec POST

Bonjour,
Je cherche à passer le résultat d'une fonction javascript avec les données d'un formulaire html (méthode POST) à la page suivante.

Je m'explique :

Page d'accueil :
- j'exécute un javascript pour connaître l'heure locale du visiteur de mon site
- je l'invite à choisir une langue de navigation grâce à un FORM html classique
- il clique sur un bouton pour passer à la page suivante.

Page suivante :
- je récupère la langue sélectionnée par le visiteur
- je voudrais récupérer aussi le résultat du javascript de la page d'accueil.

Je n'arrive pas à insérer le résultat de ma fonction javascript dans un champ hidden de mon formulaire en page d'accueil.

Merci de votre aide

Pex
Configuration: Mac OS X
Safari 528.16

6 réponses

  1. J'ai essayé la solution proposée ici. Elle n'a pas marché pour moi. J'ai posté mon problème sur le forum webmastering sous le titre: Passer une variable de javascript à php via form.

    Pouvez-vous lire ce post et éventuellement me dire ce qui cloche.

    Merci d'avance,

    proseme
    1. Excellent : ça fonctionne !

      Merci beaucoup à vous deux pour votre aide et veuillez excuser mon manque de réactivité.

      Pex
      1. il en manque un petit bout a mon precedent post
        <html>
        ...
        </<script language="Javascript">
        functiion ajoutJS(){
        .....
        var g = y + "-" + mo + "-" + d + " " + h + ":" + m + ":" + s;
        //on charge la valeur dans le champ cache
        document.form1.date_g.value = g;
        }
        </script>
        
        <!-- j'ai un unique formulaire (je n'en veux qu'un seul dans ma page web) : -->
        
        <form name="form1" action="next_page.php" method="post" onSubmit="ajoutJS();">
        
        
        1. il faut mettre tous les attributs dans les balises html notament le name qui va te servir pour charger la valeur avant l'envoi

          <html>
          ...
          </<script language="Javascript">
          ...
          var g = y + "-" + mo + "-" + d + " " + h + ":" + m + ":" + s;
          //on charge la valeur dans le champ cache
          document.form1.date_g.value = g;
          </script>
          
          <!-- j'ai un unique formulaire (je n'en veux qu'un seul dans ma page web) : -->
          
          <form name="form1" action="next_page.php" method="post">
          
          <input type="text" name="nom"   id="nom" value="" size=60 />
          
          <!-- champ cache pour passage a la page suivante :-->
          <input type="hidden" name="date_g"  id="date_g" value= "" />
          
          
          <input type="submit" name="start" value="start !" style="width:60px">
          
          </form>
          </html>
          1. Mille fois merci pour ce code! des journées que je cherchais quelque chôse qui fonctionnait et la, sa fonctionne à 200% encore merci!
        2. Merci beaucoup d'avoir pris le temps de me répondre, Py-Rex. Malheureusement, je n'ai pas tout capté.

          Imagine que j'ai ma variable javascript (g), générée à l'ouverture de la page web :

          <html>
          ...
          </<script language="Javascript">
          ...
          var g = y + "-" + mo + "-" + d + " " + h + ":" + m + ":" + s
          </script>

          <!-- j'ai un unique formulaire (je n'en veux qu'un seul dans ma page web) : -->

          <FORM action="next_page.php" method="post">

          <input type="text" name="nom" size=60 />

          <!--HIDDEN FIELDS TO BE PASSED ON TO NEXT PAGE :-->
          <input type="hidden" name="nom" value= <!--MA VAR JAVASCRIPT--> />

          <valid_button>
          <INPUT type="submit" value="start !" style="width:60px">
          </valid_button>
          </FORM>
          </html>

          J'ai du mal à comprendre comment j'applique ta méthode à mon contexte.

          Merci encore

          Pex
          1. Bonjour,

            Assumons que dans ton formulaire t'as ces champs

            <form name="nom">
            Prénom: <input name="prenom" type="text"><br>
            Nom de Famille: <input name="nomfamille" type="text">
            </form>
            <form name="principal" onsubmit="return traitement(this)">
            <input name="invisible" type="hidden">
            <input type="submit">
            </form>

            Il suffit alors d'y ajouter le script suivant

            <script type="text/javascript">
            function singleName(form)
            {
            form.invisible.value = LA_VALEUR_QUE_TU_VEUX_FAIRE_PASSER;
            return true;
            }
            </script>

            et d'utiliser le POST normallement.

            Bonne chance