IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Modifier une liste déroulante en fonction d'une autre liste déroulante
Options
Eddoul
posté 16 Oct 2014, 21:19
Message #1


Macbidouilleur d'argent !
***

Groupe : Membres
Messages : 629
Inscrit : 21 Dec 2007
Membre no 103 074



Bonjour à tous,

Je fais appel à votre car je n'ai pas d'idée comment ça peut se faire (une vague idée, peut être en javascript).

J'explique mon soucis.
J'ai 4 listes déroulantes.
C'est pour gérer un RDV, une heure de début & une heure de fin.
par heure, 2 listes : heure & minutes.

Si on sélectionne une heure de début, je voudrais automatiquement ajouter 1h à l'heure de fin.

C'est quoi le principe ?
Comment le réaliser ?

Merci pour votre aide.

Si vous avez un bout de code, je serai preneur.

Venant du monde Mainframe (cobol), je fais mes débuts en programmation objet.


Eddy


--------------------
Machines en ma possession :
- Imac 20", 4,3Ghz, HDD 250, 4Go RAM
Go to the top of the page
 
+Quote Post
No6
posté 16 Oct 2014, 22:11
Message #2


Oui ?
*****

Groupe : Membres
Messages : 3 889
Inscrit : 24 Jun 2003
Lieu : BZH
Membre no 8 224



...
Que te dire...
oui, du Javascript bien sur, et des comboBox, pourquoi pas,
mais venant du Cobol, ça va te faire un gros changement...

Maintenant pour ce genre de truc, c'est plus vite fait en jQuery, et il y a des plugin tout fait que tu peux intégrer/adapter dans tes pages,
comme :
http://senthilraj.github.io/TimePicki/
ou:
http://weareoutman.github.io/clockpicker/ que je trouve trop mimi !

ou encore Date box...

http://dev.jtsage.com/jQM-DateBox2/


AU fait, et au cas ou, pour tous ces trucs "internet" c'est IE6 interdit...
je dis ça parce si tu fait du Cobol, c'est qu'il y une chance que tu sois cerné par des PC sous XP ??

Ce message a été modifié par No6 - 16 Oct 2014, 22:37.


--------------------
"Je sais que vous croyez comprendre ce que vous pensez que j'ai dit, mais je ne suis pas sûr que vous réalisiez que ce que vous avez entendu n'est pas ce que je pense."
(Alan Greenspan)
Go to the top of the page
 
+Quote Post
Eddoul
posté 17 Oct 2014, 13:31
Message #3


Macbidouilleur d'argent !
***

Groupe : Membres
Messages : 629
Inscrit : 21 Dec 2007
Membre no 103 074



Citation (No6 @ 16 Oct 2014, 23:11) *
AU fait, et au cas ou, pour tous ces trucs "internet" c'est IE6 interdit...
je dis ça parce si tu fait du Cobol, c'est qu'il y une chance que tu sois cerné par des PC sous XP ??


c'est à titre perso que je dévloppe en OO.
Au boulot, on vient de passer à Windows7

ça semble bien sympa.
mais comment faire pour ajouter 1hà la date de fin par rapport à la date de début ?


--------------------
Machines en ma possession :
- Imac 20", 4,3Ghz, HDD 250, 4Go RAM
Go to the top of the page
 
+Quote Post
No6
posté 17 Oct 2014, 15:25
Message #4


Oui ?
*****

Groupe : Membres
Messages : 3 889
Inscrit : 24 Jun 2003
Lieu : BZH
Membre no 8 224



Quel Picker tu Préfère ?


--------------------
"Je sais que vous croyez comprendre ce que vous pensez que j'ai dit, mais je ne suis pas sûr que vous réalisiez que ce que vous avez entendu n'est pas ce que je pense."
(Alan Greenspan)
Go to the top of the page
 
+Quote Post
Eddoul
posté 17 Oct 2014, 18:06
Message #5


Macbidouilleur d'argent !
***

Groupe : Membres
Messages : 629
Inscrit : 21 Dec 2007
Membre no 103 074



c'est vraiment pas mal.
celui que le préfères est celui là :
http://weareoutman.github.io/clockpicker/
celui que tu trouves mimi, avec celui qui se ferme automatiquement.
Seulement, pas au milieu de la page, mais là est sera situé l'inputbox.


--------------------
Machines en ma possession :
- Imac 20", 4,3Ghz, HDD 250, 4Go RAM
Go to the top of the page
 
+Quote Post
Eddoul
posté 17 Oct 2014, 22:57
Message #6


Macbidouilleur d'argent !
***

Groupe : Membres
Messages : 629
Inscrit : 21 Dec 2007
Membre no 103 074



je l'ai intégré à ma page et c'est vrai que c'est quand même mieux.

Maintenant, reste à faire +1h à la date de fin quand la date de début est saisie


--------------------
Machines en ma possession :
- Imac 20", 4,3Ghz, HDD 250, 4Go RAM
Go to the top of the page
 
+Quote Post
No6
posté 17 Oct 2014, 23:59
Message #7


Oui ?
*****

Groupe : Membres
Messages : 3 889
Inscrit : 24 Jun 2003
Lieu : BZH
Membre no 8 224



Bon, j'avais pas fait trop fait attention au fait qu'il y a du bootstrap...

alors j'ai fait au plus simple, mais normalement faut en passer par le grid systeme...

donc télécharger :
1) jQuery (la 2.1.1 ici) ==> http://jquery.com/
2) Bootstrap ==> http://getbootstrap.com/

mon arbo de test :

_ dossier bootstrap [contient tout le bootstrap décompressé]
_ dossier css :
____bootstrap-clockpicker.min.css
_ dossier js :
____bootstrap-clockpicker.min.js
____jquery-2.1.1.min.js
_ fichier test_rdv.html


contenu de test_rdv.html :
HTML
<!doctype html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Test Prise de RDV</title>

<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet"> <!-- je pref mettre bootstap à part -->
<link href="css/bootstrap-clockpicker.min.css" rel="stylesheet">

<style type="text/css">
div.blk_rdv {
width:220px;
padding: 5px;
}
div.blk_rdv div.clockpicker { width: 50%; float: left; }
</style>

</head>
<body>

<div class="blk_rdv">
<div class="input-group clockpicker" data-autoclose="true" id="rdv_1">
<input type="text" class="form-control" value="09:30">
<span class="input-group-addon">
<span class="glyphicon glyphicon-time"></span>
</span>
</div>

<div class="input-group clockpicker" data-autoclose="true" id="rdv_2">
<input type="text" class="form-control" value="10:30">
<span class="input-group-addon">
<span class="glyphicon glyphicon-time"></span>
</span>
</div>
</div>


<script charset="utf-8" src="js/jquery-2.1.1.min.js"></script>
<script charset="utf-8" src="bootstrap/js/bootstrap.min.js"></script> <!-- bis: je pref mettre bootstap à part -->
<script charset="utf-8" src="js/bootstrap-clockpicker.min.js"></script>

<script type="text/javascript">

$('#rdv_1').clockpicker({
afterDone: function() {
rdv_tab = $('#rdv_1 input').val().split(':'); // découpage heures / minutes
rdv2_h = (parseInt(rdv_tab[0]) +1) %24; // plus 1 heure, ici...
if ( rdv2_h > 9 ) rdv2_val = rdv2_h+':'+rdv_tab[1];
else rdv2_val = '0'+rdv2_h+':'+rdv_tab[1]; // pour rester sur 5 digits...
$('#rdv_2 input').val(rdv2_val); // mission accomplie !
}
});
$('#rdv_2').clockpicker();
</script>
</body>
</html>


vala...
juste un peu tordu au niveau des typages, rien de bien méchant wink.gif

Ce message a été modifié par No6 - 19 Oct 2014, 10:30.


--------------------
"Je sais que vous croyez comprendre ce que vous pensez que j'ai dit, mais je ne suis pas sûr que vous réalisiez que ce que vous avez entendu n'est pas ce que je pense."
(Alan Greenspan)
Go to the top of the page
 
+Quote Post
Jaypee
posté 18 Oct 2014, 06:21
Message #8


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 486
Inscrit : 29 Aug 2002
Membre no 3 340



@Eddoul,

Par rapport à ton expérience personnelle avec le code, tu as aujourd'hui une opportunité assez unique, qui est d'apprendre Swift.
- Tout le monde est débutant en Swift.
- Le langage est puissant (c'est comme apprendre à conduire avec une voiture haut-de-gamme)
- L'outil est interactif: Tout comme JavaScript et certains éditeurs en ligne, on tape du code, et on voit immédiatement le résultat dans les Playgrounds d'Xcode 6.

Apprendre un nouveau langage, c'est comme apprendre une nouvelle langue, on sait qu'il faudra apprendre bonjour/merci/oui/non, on ne sait pas exactement comment le dire, mais on sait ce qu'il faut apprendre à dire.

J-P

Ce message a été modifié par Jaypee - 18 Oct 2014, 06:23.
Go to the top of the page
 
+Quote Post
No6
posté 18 Oct 2014, 10:12
Message #9


Oui ?
*****

Groupe : Membres
Messages : 3 889
Inscrit : 24 Jun 2003
Lieu : BZH
Membre no 8 224



Sauf que swift c'est uniquement sur Apple iOS ou Mac OS...

la en Js, il "tourne" sur tous les navigateurs et toutes les configs, y compris celles d'Apple.

Et c'est sans oublier NodeJs, qui permet de faire du multiplateformes (y compris iOS).

Ca à mis du temps, mais Javascript est en train de devenir incontournable.

HTML5, CSS3 et jquery sont maintenant vraiment aboutis, je ne vois pas trop l'intérêt de tout miser sur un langage nouveau qui peut très bien disparaitre du jour au lendemain, comme sait le faire Apple.


--------------------
"Je sais que vous croyez comprendre ce que vous pensez que j'ai dit, mais je ne suis pas sûr que vous réalisiez que ce que vous avez entendu n'est pas ce que je pense."
(Alan Greenspan)
Go to the top of the page
 
+Quote Post
Eddoul
posté 18 Oct 2014, 20:58
Message #10


Macbidouilleur d'argent !
***

Groupe : Membres
Messages : 629
Inscrit : 21 Dec 2007
Membre no 103 074



Bonjour,

Si quelqu'un peut m'expliquer comment ajouter 1h à l'heure de fin une fois l'heure de début saisie, je suis preneur.
Merci pour tous vos messages.


--------------------
Machines en ma possession :
- Imac 20", 4,3Ghz, HDD 250, 4Go RAM
Go to the top of the page
 
+Quote Post
No6
posté 18 Oct 2014, 22:57
Message #11


Oui ?
*****

Groupe : Membres
Messages : 3 889
Inscrit : 24 Jun 2003
Lieu : BZH
Membre no 8 224



??? c'est dans mon script...

CODE
<script type="text/javascript">

$('#rdv_1').clockpicker({
afterDone: function() {
rdv_tab = $('#rdv_1 input').val().split(':'); // découpage heures / minutes
rdv2_h = (parseInt(rdv_tab[0]) +1) % 24; // plus 1 heure, ici...
if ( rdv2_h > 9 ) rdv2_val = rdv2_h+':'+rdv_tab[1];
else rdv2_val = '0'+rdv2_h+':'+rdv_tab[1]; // pour rester sur 5 digits...
$('#rdv_2 input').val(rdv2_val); // mission accomplie !
}
});

$('#rdv_2').clockpicker();

</script>


dans cette partie,
il y a même le commentaire !


En plus je l'ai testé avant de poster...
c'et limite vexant... rolleyes.gif

Ce message a été modifié par No6 - 19 Oct 2014, 10:31.


--------------------
"Je sais que vous croyez comprendre ce que vous pensez que j'ai dit, mais je ne suis pas sûr que vous réalisiez que ce que vous avez entendu n'est pas ce que je pense."
(Alan Greenspan)
Go to the top of the page
 
+Quote Post
Jaypee
posté 19 Oct 2014, 08:14
Message #12


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 486
Inscrit : 29 Aug 2002
Membre no 3 340



Salut à tous,

Je ne vais pas faire de détournement de discussion, les conseils de No6 sont plus utiles pour Eddoul que les miens ici...

Mais...
JavaScript est en train de devenir le "Latin" des développeurs, non pas au sens de la langue morte, au contraire, mais plutôt comme langue commune des savants. Il se passe une sorte de révolution dans le monde JavaScript, ce sont les geeks qui ont repris le pouvoir aux bidouilleurs.

Pour bien comprendre les revendications de ces geeks, il faut étendre un petit peu ses connaissances théoriques en programmation. Ce supplément de connaissance théorique (la programmation fonctionnelle) n'est pas facile à acquérir. Mais des langages comme Swift facilitent cet apprentissage.

Tous les jeunes programmeurs sortant des écoles (d'ingénieur) maitrisent complètement ce nouveau bagage théorique. Si les vieux routards (comme moi) refusent de voir le virage qui arrive... ils vont sortir de la route, car la langue commune n'est plus maîtrisée.

Le style fonctionnel utilise ce genre de syntaxe, que l'on voit souvent quand on lit le JavaScript sous le capot des jQuery et autres Frameworks de programamtion Web.
var y = (function(x) { return x * x * x })(5)

En Swift, on aurait écrit:
var y = { x in x * x * x * x }(5),
c'est un peu plus léger, et on peut apprendre Swift, comme un langage généraliste, sans se préoccuper ni d'iOS ni de Mac OS X, c'est tout ce que je voulais faire passer comme message.
Et il existe aussi des éditeurs Javascript en-ligne qui permettent de tester très facilement le code en ligne (par ex. http://js.do/)

Allez, bon JavaScript à vous tous smile.gif
J-P

Ce message a été modifié par Jaypee - 19 Oct 2014, 08:14.
Go to the top of the page
 
+Quote Post
No6
posté 19 Oct 2014, 11:32
Message #13


Oui ?
*****

Groupe : Membres
Messages : 3 889
Inscrit : 24 Jun 2003
Lieu : BZH
Membre no 8 224



Il y avait une "petite" coquille dans mon code.

Pour ajouter une heure au rendez-vous, il faut aussi prendre garde de rester dans un systeme de 24 h par jour.

exemple rdv-début = 23h30 ==> rdv-début + 1 heure = 00h30.

J'ai donc tout simplement ajouté un modulo ( par 24 ).

Ce qui donne :
Code
rdv2_h = (parseInt(rdv_tab[0]) +1) % 24;     // plus 1 heure, ici...



=============================================================================

Au passage, et pour répondre indirectement à Jaypee :
J'ai rarement rencontré des programmeurs sachant utiliser le modulo dans leur code, et bien d'autres possibilités que nous offrent une bonne connaissance de l'algèbre de base
[comme la logique booléenne par exemple, qui souvent pourraient simplifier des forets de if imbriqués].

Donc, déjà au départ, la baggage théorique est loin d'être complet.

Pour l'élégance du code et ses paradigmes, on peut tres bien la retrouver en HAML, SCSS, et autres, qui justement sont fait pour préserver la logique pure, en se dédouanant des lourdeurs du HTML/CSS...

Quand au jQuery, c'est déjà une belle avancée, par rapport au javascript, et si tu veux aller plus loin dans la lisibilité, il y a aussi AngularJs, qui simplifient énormément la tache des développeurs et collant parfaitement aux couches interfaces.

Ce message a été modifié par No6 - 19 Oct 2014, 11:35.


--------------------
"Je sais que vous croyez comprendre ce que vous pensez que j'ai dit, mais je ne suis pas sûr que vous réalisiez que ce que vous avez entendu n'est pas ce que je pense."
(Alan Greenspan)
Go to the top of the page
 
+Quote Post
Eddoul
posté 19 Oct 2014, 20:33
Message #14


Macbidouilleur d'argent !
***

Groupe : Membres
Messages : 629
Inscrit : 21 Dec 2007
Membre no 103 074



Citation (No6 @ 18 Oct 2014, 23:57) *
??? c'est dans mon script...

CODE
<script type="text/javascript">

$('#rdv_1').clockpicker({
afterDone: function() {
rdv_tab = $('#rdv_1 input').val().split(':'); // découpage heures / minutes
rdv2_h = (parseInt(rdv_tab[0]) +1) % 24; // plus 1 heure, ici...
if ( rdv2_h > 9 ) rdv2_val = rdv2_h+':'+rdv_tab[1];
else rdv2_val = '0'+rdv2_h+':'+rdv_tab[1]; // pour rester sur 5 digits...
$('#rdv_2 input').val(rdv2_val); // mission accomplie !
}
});

$('#rdv_2').clockpicker();

</script>


dans cette partie,
il y a même le commentaire !


En plus je l'ai testé avant de poster...
c'et limite vexant... rolleyes.gif


oh, milles excuses.
je n'ai pas pas franchement lu tout le script.
j'ai appliqué ça dans ma page et ça a fonctionné nickel, donc, je ne me suis dis que je devais encore à faire ça sans franchement penser que c'était pas fait.

Je regarde pourquoi ça ne le fait pas alors, j'ai du faire un copier/coller bizarre.

Merci


--------------------
Machines en ma possession :
- Imac 20", 4,3Ghz, HDD 250, 4Go RAM
Go to the top of the page
 
+Quote Post
Eddoul
posté 19 Oct 2014, 21:45
Message #15


Macbidouilleur d'argent !
***

Groupe : Membres
Messages : 629
Inscrit : 21 Dec 2007
Membre no 103 074



j'ai intégré ton script dans ma page.
C'est nickel, après que j'ai un peu compris son fonctionnement.

Un grand merci à tous pour votre aide.
Je suis parti au départ avec 4 listbox ... qui franchement pas très jolies à voir et à saisir les heures
à un beau résultat qui en plus répond parfaitement aux attentes de mon épouse (et oui, je fais sa gestion de son cabinet de psychologue).

UN GRAND MERCI.

Au plaisir.


--------------------
Machines en ma possession :
- Imac 20", 4,3Ghz, HDD 250, 4Go RAM
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 25th April 2024 - 15:52