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

  FORUM HardWare.fr
  Programmation
  Javascript/Node.js

  [RESOLU] Faire deux input avec Javascript

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU] Faire deux input avec Javascript

n°2264493
hogz
Posté le 17-08-2015 à 12:45:05  profilanswer
 

Bonjour,
 
j'ai un formulaire avec un choix bouton radio qui qui sélectionne un INTERNAT ou EXTERNAT et qui fait apparaître le PRIX (sur base Mysql).
Et cela marche...
voilà le code (je vous évite l' html):
 
 
 
<!--PRIX INTERNAT-->
 
<input type="radio" style="height:15px; width:20px;" name="TYPEPENSION" value="INTERNAT"  
 id="chkb_10" onclick="met(this,'texte_10','texte_20');" >
 
<label for="chkb_10">Prix avec repas</label>
 
<input type="text" readonly  id="texte_10"  name="PRIXFACT" value="<?php echo ($donnees['PRIXDP'])?>">
 
<!--PRIXEXT-->
 
<input type="radio"  id="chkb_20" value="EXTERNAT" name="TYPEPENSION"
onclick="met(this,'texte_20','texte_10');" >
 
<label for="chkb_20">Prix sans repas</label>
 
<input type="text" readonly id="texte_20"  name="PRIXFACT" value="<?php echo ($donnees['PRIXEXT'])?>"
 
Le PRIX est affiché, mais j'aimerai le récupérer pour l'insérer dans un INPUT, avec le même bouton.
Donc, un (enfin deux au final) bouton deux INPUT suivant le choix INTERNAT ou EXTERNAT et PRIXDP ou PRIXEXT.
Mais peut-être ce n'est pas la bonne solution.
Je suis très léger un écriture Javascript mais j'essaye de m'y mettre ;)  
 
Merci pour votre aide.
J'espère avoir été assez clair.. :whistle:  
Cordialement.


Message édité par hogz le 25-08-2015 à 11:11:02
mood
Publicité
Posté le 17-08-2015 à 12:45:05  profilanswer
 

n°2264498
tofinard
Posté le 17-08-2015 à 14:41:40  profilanswer
 

arg désolé je ne suis pas sur de vraiment comprendre ce que tu veux, essaye peut-être de reformuler.
 
En tout cas, je vois deux input de type text portant le même nom.... à l'inverse du input type radio, où là c'est carrément normal, pour le champs texte ça me parait un peu bizarre, et en plus ça t'empeche d'encapsuler tout ça dans un formulaire nommé  

Code :
  1. <form name="totopipo"> (...tes inputs...) </form>

 
et d'utiliser la notation simple du genre  

Code :
  1. document.totopipo.PRIXFACT.value = this.value;


 dans ta fonction met.
 
désolé je te répond un peu à l'arrache mais j'aimerais être sur de ce dont tu as besoin avant de répondre.

n°2264515
hogz
Posté le 17-08-2015 à 20:46:31  profilanswer
 

Merci pour ta réponse.
Cela fait partie d’une balise <form></form> et d’un formulaire beaucoup plus important . Mais, j’évite d’alourdir le code.
Oui, effectivement les INPUT name="PRIXFACT" c'est un essai, mais la résultante c'est que l'input  
name="PRIXFACT" value="<?php echo ($donnees['PRIXEXT'])?>
efface l'input
name="PRIXFACT" value="<?php echo ($donnees['PRIXDP'])?>
 
Ce qui est normal puisque c'est le dernier ....
Je voudrais que ces input suivent le choix des boutons.
 
En fait les input  
 name="TYPEPENSION" value="INTERNAT"  
et
value="EXTERNAT" name="TYPEPENSION"  
suivent le choix du bouton mais pas les autres, d'où mon questionnement.
Mais je comprends parfaitement que c'est ni facile à expliquer, ni à comprendre. :pt1cable:


Message édité par hogz le 18-08-2015 à 20:27:52
n°2264556
tofinard
Posté le 19-08-2015 à 09:02:19  profilanswer
 

hello,
 
arg je ne suis toujours pas sur de comprendre. Peut-être que tes champs input ne sont pas modifés à cause de la propriété readonly ???
 
Essaie peut-être de renommer tes deux input text pour qu'ils aient deux noms différents ?  
 
Comme je suis un peu lent à la compréhension, peut-être que d'autres verront mieux que moi ton problème...
 
As-tu des erreurs sur ta console javascript ? (F12 sur IE et FF ou Ctrl+Maj+I sur Chrome) ça aide toujours la console ^^
 
Désolé pour le peu d'aide que j'ai pu t'apporter.

n°2264583
hogz
Posté le 19-08-2015 à 15:56:28  profilanswer
 

Je comprends …
Donc, j’ai deux boutons  
 
Qui fait un choix sur INTERNAT ou EXTERNAT qui est envoyé en NAME et VALUE avec un chois INTERNAT ou EXTERNAT et bien sûr suivant ce choix affiche le prix en  echo de la base de données…
Tout cela marche, JAVASCRIPT, PHP SQL et formulaire qui valide toutes mes entées sur la base, pas de soucis….
Je voudrai récupérer le prix choisi pour l’envoyer via mon formulaire.
Ma tentative a été de de récupérer mon VALUE et name="PRIXFACT" via :
 
<input type="text" name="PRIXFACT" readonly  id="texte_10" value="<?php echo ($donnees['PRIXDP'])?>
 
Mais,  je récupère le prix du premier (bouton) VALUE quand il est séléctionné qui est certainement  écrasé par le second puisque sur ma base , il est toujours mentionné le montant du second VALUE même s'il n'est pas choisi...
 
Donc pas d'erreur de JAVASCRIPT et readonly bloque simplement à la "saisie" du formulaire.
Je pense que je vais m'orienter vers des IF dans mes $_POST à la validation du formulaire...
Enfin je pense!! :whistle:  

n°2264615
tofinard
Posté le 20-08-2015 à 08:57:48  profilanswer
 

yes ! je crois que j'ai compris (gnéééé enfin) :-)
 
alors: rajoute un input type="hidden" avec le nom que tu veux (on prendra ici name="prixChoisi" ) dont tu laisse la value vide.
 
ensuite sur tes bouton radio tu laisse ta fonction mais avec un seul parametre (le this). Dans ta fonction tu fais un document.nameDeTonForm.prixChoisi.value = this.value (ça va donc mettre le bon prix dans ton input hidden) et c'est la valeur de ce input hidden que tu vas récupérer dans le script appellé à la validation du formulaire. Normalement ça devrait fonctionner
 
(le problème étant que, parceque tu utilises un même nom pour 2 input text différents, la valeur de l'un écrase la valeur de l'autre dans ton script appellé lors de la validation du formulaire)
 
je... hum.... j'espère que j'ai bon là...


Message édité par tofinard le 20-08-2015 à 08:58:32
n°2264650
tofinard
Posté le 21-08-2015 à 10:34:39  profilanswer
 

alors alors ? j'avais bon ? ou j'ai à ce point rien compris que tu ne me parle plus ?

n°2264666
hogz
Posté le 21-08-2015 à 17:34:40  profilanswer
 

Merci pour ton aide,
 
mais l'INPUT avec le même NAME est normal car il s'affecte dans la colonne désignée de la BD suivant le choix du bouton.
Enfin, si j'ai bien compris...

n°2264667
tofinard
Posté le 21-08-2015 à 17:45:34  profilanswer
 

Je.... enfin.... mais non ! si tes deux inputs text sont dans le même form alors c'est pas bon !
 
http://stackoverflow.com/questions [...] -same-name
 
enfin, si lui arrive à te convaincre mieux que moi ^^ :)  
 
bon courage


Message édité par tofinard le 21-08-2015 à 17:46:20
n°2264668
lefilsdela​terre
Posté le 21-08-2015 à 18:20:29  profilanswer
 

Bonjour,
 
A priori tu n'as besoin que d'une information de la part de l'utilisateur : le choix 'avec repas' ou 'sans repas'.
 
Les deux prix doivent bien être mis avec des noms différents :
<input type="text" readonly  id="texte_10"  name="prix1" value="<?php echo ($donnees['PRIXDP'])?>">  
 
et
 
<input type="text" readonly id="texte_20"  name="prix2" value="<?php echo ($donnees['PRIXEXT'])?>"  
 
Ensuite, une condition sur le type de pension suffira à récupérer le prix correspondant.
 
exemple :
fichier1 (prix.php) :

Code :
  1. <?php
  2. $p1 = 3 ;
  3. $p2 = 2 ;
  4. ?>
  5. <!--PRIX INTERNAT-->
  6. <form method="POST" action="prix_go.php">
  7. <input type="radio" style="height:15px; width:20px;" name="TYPEPENSION" value="INTERNAT" 
  8. id="chkb_10" onclick="met(this,'texte_10','texte_20');" >
  9. <label for="chkb_10">Prix avec repas</label>
  10. <input type="text" readonly  id="texte_10"  name="p1" value="<?php echo ($p1)?>">
  11. <!--PRIXEXT-->
  12. <input type="radio"  id="chkb_20" value="EXTERNAT" name="TYPEPENSION"
  13. onclick="met(this,'texte_20','texte_10');" >
  14. <label for="chkb_20">Prix sans repas</label>
  15. <input type="text" readonly id="texte_20"  name="p2" value="<?php echo ($p2)?>" >
  16. <input type="submit">
  17. </form>


 
fichier 2 (prix_go.php) :

Code :
  1. <?php
  2. if ($_POST['TYPEPENSION'] == 'INTERNAT' ) {
  3. $prix = $_POST['p1'] ;
  4. }
  5. else {
  6. $prix = $_POST['p2'] ;
  7. }
  8. ?>
  9. <?php echo ($prix)?>


 
Évidemment, il reste à gérer les erreurs type 'l'utilisateur n'a rien choisi avant de cliquer sur le bouton submit'

mood
Publicité
Posté le 21-08-2015 à 18:20:29  profilanswer
 

n°2264714
hogz
Posté le 24-08-2015 à 09:39:36  profilanswer
 

Bonjour,
 
 
milles excuses de ne pas avoir répondu plus tôt...Mais j'étais absent.
Oui, effectivement traiter par la condition sur les $_POST me semblait une bonne voie.
Bon, je regarde ça et vous tiens au courant.
Merci pour votre aide. :hello:

n°2264762
hogz
Posté le 25-08-2015 à 11:10:06  profilanswer
 

Bon, ça marche avec la récupération des $_POST et en mettant une condition.
Mais, je vais quand même me pencher sur une formule en javascript.
Merci pour votre aide...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Javascript/Node.js

  [RESOLU] Faire deux input avec Javascript

 

Sujets relatifs
Récupérer un "Return" Javascript dans un input[PHP, JavaScript] Copier la valeur d'un input
[Javascript] Vérifier si un input text est un floatDétecter Action javascript sur un input
javascript dans un inputJavascript/DOM ajout input/select en colonne dans un tableau
[javascript] verifier présence input avant control formulaireBesoin d'aide en javascript et "input type=image"
[Javascript] onClick, la valeur d'une balise input est renseignée 
Plus de sujets relatifs à : [RESOLU] Faire deux input avec Javascript


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