Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
985 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Inserer une variable JS dans un formulaire HTML

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Inserer une variable JS dans un formulaire HTML

n°1995729
Elooodie
(_+33|<
Posté le 25-05-2010 à 09:54:51  profilanswer
 

Bonjour,
Voila j'ai un soucis avec mon formulaire, je souhaite récupérer une variable javascript et l'envoyer par le biais d'un formulaire. Problème, la variable n'est pas envoyer dans le script php de ma deuxième page. Voici mon code:
 
Page1:

Citation :

<body onload="document.valeur.submit()">
 
<script>
var ecran = screen.width;
</script>
 
<form name="valeur" action="http://127.0.0.1/wordpress/?page_id=4" method="POST">
<input type="HIDDEN" name="resolution" value="<script>document.write(ecran)</script>"></input>
</form>
 
</body>


 
Page2:

Citation :


<?php
         echo $_POST['resolution'].'-';
         $bloginfo = get_bloginfo('stylesheet_directory');
         $fav = $bloginfo.'/favicon.ico';    
?>


 
Dans la page2 le code n'est pas terminé, je teste juste pour l'instant si une valeur est présente dans $_POST['resolution']. Je pense que le problème vient de la page1 et du champ value dans mon input mais je ne sais pas trop comment le formuler.
 
Si quelqu'un a une idée...  :ange:  
Merci d'avance!  :)

mood
Publicité
Posté le 25-05-2010 à 09:54:51  profilanswer
 

n°1995731
Fred999
Rabat-joie
Posté le 25-05-2010 à 09:58:10  profilanswer
 

Salut,

 

Je procéderais de la sorte : sur le onload(), tu appelles une fonction, qui affecte la valeur de la résolution au champ de formulaire, puis qui le submit, le tout en javascript. Le document.write() ne me paraît pas adapté à ce que tu souhaites faire.

 

=> un truc comme document.forms[0].monchamp.value = maresolution;

 

(le code n'est sans doute pas exact, j'ai pas fait de js depuis un moment)


Message édité par Fred999 le 25-05-2010 à 09:58:24
n°1995744
Elooodie
(_+33|&lt;
Posté le 25-05-2010 à 10:26:19  profilanswer
 

Merci pour cette réponse, est ce que tu pourrais être un plus précis quant à l'utilisation de ton code?
Je dois remplacer le document.write par ce que tu m'as donné?

n°1995746
Fred999
Rabat-joie
Posté le 25-05-2010 à 10:30:07  profilanswer
 

Tu supprimes le document.write(), vu que la valeur du champ sera attribuée lors de l'exécution de la fonction.


Message édité par Fred999 le 25-05-2010 à 10:30:14
n°1995761
Elooodie
(_+33|&lt;
Posté le 25-05-2010 à 10:43:00  profilanswer
 

Voila ça marche, merci beaucoup fred999 !  :)

n°1995773
dzing35
Posté le 25-05-2010 à 11:07:17  profilanswer
 

Bonjour,
 
Ce que veut dire Fred999, c'est un truc du genre :

Code :
  1. <script type="text/javascript">
  2. function myLoad() {
  3.   document.getElementById('resolution').value = screen.width;
  4.   document.valeur.submit();
  5. }
  6. </script>
  7. <body onload="myLoad()">
  8. <form name="valeur" action="http://127.0.0.1/wordpress/?page_id=4" method="POST">
  9. <input type="HIDDEN" id="resolution" value=""></input>
  10. </form>
  11. </body>


 
Quelque chose du genre...


---------------
Fred => http://www.meance.free.fr
n°1995784
Fred999
Rabat-joie
Posté le 25-05-2010 à 11:22:22  profilanswer
 

Voilà, c'est exactement ça :o

n°1995919
Elooodie
(_+33|&lt;
Posté le 25-05-2010 à 14:51:47  profilanswer
 

Merci dzing35, j'ai appliqué ton code, plus propre que ce que j'avais fait moi même si ça marchait ^^
Par contre, il me reste un problème, donc quand j'arrive sur la page c'est nikel, en revanche quand je change de page il ne se souvient plus de la variable apparament, par exemple quand je suis sur page_id=6 il n'a plus l'air de se souvenir.
En fait c'est pour afficher une feuille de style différente si la résolution est de 800 ou supérieur.
Concrètement:
Page1

Citation :


<script type="text/javascript">
   
function myLoad() {
 document.getElementById('resolution').value = screen.width;
  document.valeur.submit();
 }
 
</script>
 
<body onload="myLoad()">
<form name="valeur" action="http://127.0.0.1/wordpress/?page_id=4" method="POST">
<input type="HIDDEN" name="resolution" id="resolution" value=""></input>
</form>
</body>


 
Page2

Citation :

<?php
         $bloginfo = get_bloginfo('stylesheet_directory');
         $fav = $bloginfo.'/favicon.ico';  
   
   if ($_POST['resolution']<='800') {
   $val = $bloginfo.'/style2.css';
   }
   else {
   $val = $bloginfo.'/style.css';
   }
?>
 
        <link rel="stylesheet" href="<?php echo $val ?>" type="text/css" media="screen" />
       <link rel="shortcut icon" href="<?php echo $fav; ?>"/>


 
Donc voila, la première fois quand j'arrive sur la page qui correspond à l'action du formulaire c'est à dire http://[...]page_id=4 et bien il m'affiche la seconde feuille de style (normal puisque je suis en 1024), sauf que quand je clique sur une autre page, il affiche la première, comme si la valeur contenu dans la variable $_POST['resolution'] était inférieure ou égale à 800.  
Bizarre, à la limite si elle était vide (ce que j'aurais pu comprendre) le navigateur n'afficherait aucune feuille de style, non?
J'espère que j'ai été claire lol  :ange:

n°1995992
Fred999
Rabat-joie
Posté le 25-05-2010 à 16:04:10  profilanswer
 

Bin ta variable $_POST n'est valable que pour la page correspondant à page_id=4, ensuite elle est paumée... il faudrait utiliser les sessions ou un cookie, parce que tu ne vas pas te trimbaler un formulaire à poster de page en page...

 

Elle est vide, par défaut vide < 800 je suppose...

Message cité 1 fois
Message édité par Fred999 le 25-05-2010 à 16:04:45
n°1996022
dzing35
Posté le 25-05-2010 à 17:01:55  profilanswer
 

Fred999 a écrit :

Bin ta variable $_POST n'est valable que pour la page correspondant à page_id=4, ensuite elle est paumée... il faudrait utiliser les sessions ou un cookie, parce que tu ne vas pas te trimbaler un formulaire à poster de page en page...
 
Elle est vide, par défaut vide < 800 je suppose...


 
+1
 
Perso, je crois que je ferai une première page en demandant à l'utilisateur de choisir sa résolution et je garde son choix en session ou alors optimiser le site pour du 800x600 uniquement. Ceci dit 800x600, il ne doit pas y avoir beaucoup de personnes à utiliser cette résolution...


---------------
Fred => http://www.meance.free.fr
mood
Publicité
Posté le 25-05-2010 à 17:01:55  profilanswer
 

n°1996087
Fred999
Rabat-joie
Posté le 25-05-2010 à 22:43:11  profilanswer
 

Mais-le-client-a-toujours-raison [:sadnoir]

n°1996094
gatsu35
Blablaté par Harko
Posté le 26-05-2010 à 00:07:38  profilanswer
 

la solution reste quand même dégueulasse :o
la meilleure technique c'est de refaire le design fluidement.
tu me files ton HTML et ta CSS et je te torche ça en deux temps trois mouvements. pour te prouver que tu n'as pas besoin de passer par des méthodes à la con pour obtenir ce dont tu as besoin :o


---------------
Blablaté par Harko

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Inserer une variable JS dans un formulaire HTML

 

Sujets relatifs
Problème dans les code HTML et CSSRésolu : variable modifiée par l'affectation d'une autre variable
Question à intégrateurs HTML/CSSEnvoyer un email HTML contenant du javascript
transfert formulaire vers base de donnéecomment inserer une image dans une base de donnée?
fomulaire en POO? peut ton mettre du html[resolut]Envoi de formulaire vers sa messagerie outlook
Formulaire PHP, retour sur ma page d'origine[Résolu] Problème variable php qui renvoie rien
Plus de sujets relatifs à : Inserer une variable JS dans un formulaire HTML


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR