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

JavaScript Discussion :

Récupération d'une variable pour une ligne de code


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2014
    Messages : 20
    Points : 11
    Points
    11
    Par défaut Récupération d'une variable pour une ligne de code
    Je souhaites pouvoir filtrer un document XML, en fonction des jours de la semaine.

    voici mon script qui permet de filtrer, les données XML, qui s'affichent sur ma page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var jours = new Spry.Data.XMLDataSet("ordre_du_jour.xml", "societe/odj", {sortOnLoad: "Jour", sortOrderOnLoad: "ascending"});
    var filtre = function(dataSet, row, rowNumber)
    {
    	if (row["Jour"].search(/^Lundi/) != -1)
    		return row;
    	return null;
    }
    jours.filter(filtre); 
    jours.filter(null);
    Voici le code que j'ai pu trouver, qui va me permettre d'intégrer les jours de la semaine à mon script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function cejour() {
     var aujourdhui = new Date()
     var jour = aujourdhui.getDay()
     if (jour == 0)   = " ";
     if (jour == 1)   = " ";
     if (jour == 2)   = " ";
     if (jour == 3)   = " ";
     if (jour == 4)   = " ";
     if (jour == 5)   = " ";
     if (jour == 6)   = " ";
     }
    Comment faire avec ces éléments, pour modifier automatiquement la valeur de la ligne 4 de mon code de filtre XML "/^Lundi/" afin que selon le jour de la semaine le Lundi soit remplacé par Mardi, Mercredi, etc.... ?

  2. #2
    Membre actif

    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 183
    Points : 274
    Points
    274
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        var days = "lundi,mardi,mercredi,jeudi,vendredi,samedi,dimanche".split(",");
        var  indiceJour = new Date().getday();
        var jourRe = new RegExp('^' + days[indiceJour],"i");
    	if (jourRe.test(row["Jour"]))
    		return row;

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2014
    Messages : 20
    Points : 11
    Points
    11
    Par défaut Merci
    Merci arnogues,

    mais je me suis trompé, il ne s'agit pas d'une variable pour un jour , mais pour une heure, je possède déjà un script sans la variable de changement de la ligne 60 du code.

    J'ai essayer de modifier le script avec l'exemple de code que vous m'avez communiqué, mais cela ne fonctionne pas.

    Je n'ai vraiment pas beaucoup de talent dans ce domaine.



    voici le script :

    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    <SCRIPT LANGUAGE="JavaScript">
    MaDate = new Date;
    heure = MaDate.getHours();
    function message1()
    	{
    	if (heure>7 && heure<=8)
    		{
    		MessageB = '/^08/';
    		}
    	if (heure>8 && heure<=9)
    		{
    		MessageB = '/^09/';
    		}
    	if (heure>9 && heure<=10)
    		{
    		MessageB = '/^10/';
    		}
    	if (heure>10 && heure<=11)
    		{
    		MessageB = '/^11/';
    		}
    	if (heure>11 && heure<=12)
    		{
    		MessageB = '/^12/';
    		}
    	if (heure>12 && heure<=13)
    		{
    		MessageB = '/^13/';
    		}
    	if (heure>13 && heure<=14)
    		{
    		MessageB = '/^14/';
    		}
    	if (heure>14 && heure<=15)
    		{
    		MessageB = '/^15/';
    		}
    	if (heure>15 && heure<=16)
    		{
    		MessageB = '/^16/';
    		}
    	if (heure>16 && heure<=17)
    		{
    		MessageB = '/^17/';
    		}
    	if (heure>17 && heure<=18)
    		{
    		MessageB = '/^18/';
    		}
    	if (heure>18 && heure<=19)
    		{
    		MessageB = '/^19/';
    		}
    	return MessageB;
    	}
    var horaires = new Spry.Data.XMLDataSet("conf0.xml", "Conf/Reunion", {sortOnLoad: "Heure", sortOrderOnLoad: "ascending"});
    var gRowLimit = 20
    var filtre = function(dataSet, row, rowNumber)
    {
    if (row["Heure"].search(/^10/) != -1)
    		return row;
    	return null;
    }
    horaires.filter(filtre); 
    horaires.filter(null);
    </SCRIPT>
    et puis pouvez-vous m'indiquer, quelle était la raison du changement de "search" en "test", dans votre exemple ?
    Lorsque j'essai dans d'autres scripts, je n'arrive pas a faire fonctionner "test", alors que "search" fonctionne....


    Enfin, ma seconde difficulté est que le code "search" n'affiche que l'heure exprimée entre (/^10/).
    Mais je souhaites qu'elle puisse afficher à partir de l'heure donnée.

    exemple : si j'indique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (row["Heure"].search(/^10/) != -1)
    j'aimerais qu'elle affiche mes données a partir de 10h, donc qu'elle indique aussi 11h, 12h, etc.... (mais pas les horaires avant 10h), mais ceci est peut être un autre sujet......

    Merci par avance, pour les reponses à toutes mes interrogations

  4. #4
    Membre du Club
    Femme Profil pro
    beler.fr
    Inscrit en
    Mars 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : beler.fr
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 25
    Points : 43
    Points
    43
    Par défaut Récupération d'une variable pour une ligne de code
    Bonjour flo2tours,

    Si j’ai bien compris ta question, tu peux suivre les pas suivants :

    - ligne du code du script pour filtage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	if (row["Jour"].search(/^Lundi/) != -1)
    modifier en 	
    	var jour_filter = cejour();
    	if (row["Jour"].search(eval("/^"+jour_filter+"/") != -1)
    - dans la fonction cejour() modifier pour avoir le nom du jour (utilise de préférence un switch):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function cejour() {
    		var aujourdhui = new Date();
    		var jour = aujourdhui.getDay();
    		switch(jour) {
    			case "0": return "Dimanche"; break;
    			case "1": return "Lundi"; break;
    			// etc...
    		}
    	}
    bonne chance, tiens-moi au courant

  5. #5
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2014
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Merci mihaela belersoft,

    Mais je souhaites filtrer par Heure et non plus par jour, comme expliqué au début de ce post.

    j'ai tout de même essayé avec votre script, mais cela me met une erreur.

    ci-dessous, capture d'écran de mon code :

    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
    <script type="text/javascript">
    function cejour() {
    var aujourdhui = new Date();
    var jour = aujourdhui.getDay();
    switch(jour) {
    case "0": return "Dimanche"; break;
    case "1": return "Lundi"; break;
    case "2": return "Mardi"; break;
    case "3": return "Mercredi"; break;
    case "4": return "Jeudi"; break;
    case "5": return "Vendredi"; break;
    case "6": return "Samedi"; break;
     }
     }
    var horaires = new Spry.Data.XMLDataSet("conf01.xml", "Conf/Reunion", {sortOnLoad: "Jour", sortOrderOnLoad: "ascending"});
    var jour_filter = cejour();
    {
    if (row["Jour"].search(eval("/^"+jour_filter+"/") != -1)
    </script>
    vous trouverez en pièce jointe la capture d'écran de l'erreur.

    comment faire pour que cela fonctionne et , comment filtrer selon l'heure qui est et non le jour ?

    merci par avance
    Images attachées Images attachées  

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    switch(jour) {
    case "0": return "Dimanche"; break;
    case "1": return "Lundi"; break;
    case "2": return "Mardi"; break;
    case "3": return "Mercredi"; break;
    case "4": return "Jeudi"; break;
    case "5": return "Vendredi"; break;
    case "6": return "Samedi"; break;
     }
    oulà !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Semaine=["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"];
    alert(Semaine[jour])
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2014
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    désolé SpaceFrog ,

    n'étant pas très bon en développement,

    je n'ai pas compris

    Dois-je remplacer l'ensemble de l'ancien code cité, par le nouveau ?

    car si , cela est le cas hélas, cela n'a rien changé....

    toujours le même erreur, au même endroit.

    que dois-je faire, a l'aide..... ?

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    je n'ai pas dit que l'erreur provenait de là ... je rationalisais justs un peu le code ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2014
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    arnogues et mihaela belersoft,


    Avez-vous une idée pour solutionner mon problème ??

    merci d'avance pour votre précieuse aide

  10. #10
    Membre du Club
    Femme Profil pro
    beler.fr
    Inscrit en
    Mars 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : beler.fr
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 25
    Points : 43
    Points
    43
    Par défaut javascript serch
    bonjour flo2tours,
    je te propose un exemple de fonction pour filtrer une chaine de caractères. La chaine de caractères peut contenir seulement une date calendaire ou le nombre d’un jour. Ca marche bien chez moi. Tu peux l’essayer et l’adapter dans ton cas. Bonne journée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var myText = "12 34 cycy 56 98 09 10 03 34"; // you can put here your text to filtering...
    var current_hour = get_current_hour();
    if(myText.search(eval(current_hour)) != -1) {
    	alert("My current hour exists!");
    }
    function get_current_hour() {
    	var aujourdhui = new Date();
    	var hour = aujourdhui.getHours();
    	// ensure that your function return always two characters
    	return hour.toString().length == 1 ? "/0"+hour+"/i" : "/"+hour+"/i";
    }

  11. #11
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2014
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Merci, en m'inspirant de ta proposition , j'ai finalement réussie un peu différemment et cela fonctionne !

    mais j'aimerais y ajouter 2 autres fonctions......


    le code qui fonctionne parfaitement :

    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    <script type="text/javascript">
    MaDate = new Date;
    heure = MaDate.getHours();
    function hh()
    	{
    	if (heure>=0 && heure<=4)
    		{
    		Creneau = '04';
    		}
    	if (heure>4 && heure<=5)
    		{
    		Creneau = '05';
    		}
    		if (heure>5 && heure<=6)
    		{
    		Creneau = '06';
    		}
    	if (heure>6 && heure<=7)
    		{
    		Creneau = '07';
    		}
    	if (heure>7 && heure<=8)
    		{
    		Creneau = '08';
    		}
    	if (heure>8 && heure<=9)
    		{
    		Creneau = '09';
    		}
    	if (heure>9 && heure<=10)
    		{
    		Creneau = '10';
    		}
    	if (heure>10 && heure<=11)
    		{
    		Creneau = '11';
    		}
    	if (heure>11 && heure<=12)
    		{
    		Creneau = '12';
    		}
    	if (heure>12 && heure<=13)
    		{
    		Creneau = '13';
    		}
    	if (heure>13 && heure<=14)
    		{
    		Creneau = '14';
    		}
    	if (heure>14 && heure<=15)
    		{
    		Creneau = '15';
    		}
    	if (heure>15 && heure<=16)
    		{
    		Creneau = '16';
    		}
    	if (heure>16 && heure<=17)
    		{
    		Creneau = '17';
    		}
    	if (heure>17 && heure<=18)
    		{
    		Creneau = '18';
    		}
    	if (heure>18 && heure<=19)
    		{
    		Creneau = '19';
    		}
    	if (heure>19 && heure<=20)
    		{
    		Creneau = '20';
    		}
    	if (heure>20 && heure<=21)
    		{
    		Creneau = '21';
    		}
    	if (heure>21 && heure<=22)
    		{
    		Creneau = '22';
    		}
    	if (heure>22 && heure<=24)
    		{
    		Creneau = '23';
    		}
    	return Creneau;
    	}
    var horaires = new Spry.Data.XMLDataSet("conf01.xml", "Conf/Reunion", {sortOnLoad: "Heure", sortOrderOnLoad: "ascending"});
    var regExpStr = hh();	
    	regExpStr = "^" + regExpStr;
     
    	var regExp = new RegExp(regExpStr, "i");
     
    	var filterFunc = function(ds, row, rowNumber)
    	{
    		var str = row["Heure"];
    		if (str && str.search(regExp) != -1)
    			return row;
    		return null;
    	};
    	horaires.filter(filterFunc);
    </script>
    La première fonction à ajouter, serait, de pouvoir afficher a partir d'une heure et non uniquement l'heure actuel, comme cela est le cas actuellement.

    exemple : si regExp est égal a 10, dans (str && str.search(regExp) != -1), actuellement je vois affiché uniquement les éléments se produisant à 10h.
    J'aimerais plutôt qu'il affiche ceux de 10h, suivi de ceux de 11h, jusqu'à la fin de ma liste XML.

    que dois-je changer dans ma syntaxe pour arriver a ce résultat ?



    et enfin, le seconde fonction à ajouter, serait, de changer le fichier XML de source selon le jour de la semaine (lundi=conf01.xml, mardi=conf02.xml, etc...)
    pour cela, j'ai ajouté ce script, ci dessous, a mon script existant, mais lorsque je test le script avec la fonction 'direct" de Dreamweaver, la machine ne charge pas la page normalement, à la place s'affiche la succession des valeurs du fichier XML, du jours souhaité , a la suite sur une même ligne.

    j'en conclu donc que location.href n'est pas du tout adapté a mon code, mais n'ayant qu'un tres faible niveau javascript, je ne sait pas par quoi le remplacer, pouvez-vous m'aider ?

    voici mon essai de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function planning() {
     var aujourdhui = new Date()
     var jour = aujourdhui.getDay()
     if (jour == 0) location.href = "conf00.xml";
     if (jour == 1) location.href = "conf01.xml";
     if (jour == 2) location.href = "conf02.xml";
     if (jour == 3) location.href = "conf03.xml";;
     if (jour == 4) location.href = "conf04.xml";
     if (jour == 5) location.href = "conf05.xml";
     if (jour == 6) location.href = "conf06.xml";
     }
    var jour_xml = planning()
    var horaires = new Spry.Data.XMLDataSet("+jour_xml+", "Conf/Reunion", {sortOnLoad: "Heure", sortOrderOnLoad: "ascending"});

  12. #12
    Membre actif

    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 183
    Points : 274
    Points
    274
    Par défaut
    Bon avant que tu te lances dans d'autres trucs, colle nous tout ton code s'il te plaît.
    On veut tout, le code ou il y a les jours de la semaine, les heures, etc..
    Et ensuite on va t'aider à nettoyer ce code, car c'est un beau bordel et c'est moche.

    on va par l'occasion aussi t'expliquer pour le rendre plus simple et moins tordu

  13. #13
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2014
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Bonsoir arnogues,

    Tu trouveras en pièce jointe l'ensemble du code.

    Qui pour l'instant fonctionne en l'état, c'est a dire affiche selon l'heure les données voulu.

    J'ai mis en commentaire dans le code, le script que je tentais de bidouiller pour permettre le changement de fichier XML selon le jour, mais qui ne fonctionne pas en l'etat, il me semble que location.href n'est pas du tout adapté a mon code, mais n'ayant qu'un tres faible niveau javascript, comme tu a du le constater, je ne sait pas par quoi le remplacer...
    .


    et enfin j'aimerais pouvoir afficher a partir d'une heure et non uniquement l'heure actuelle, comme cela est le cas actuellement.

    exemple : si regExp est égal a 10, dans (str && str.search(regExp) != -1), actuellement je vois affiché uniquement les éléments se produisant à 10h.
    J'aimerais plutôt qu'il affiche ceux de 10h, suivi de ceux de 11h, jusqu'à la fin de ma liste XML.

    Merci par avance pour tout ça
    Fichiers attachés Fichiers attachés

  14. #14
    Membre actif

    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 183
    Points : 274
    Points
    274
    Par défaut
    La Première chose est de nettoyer ton code, franchement il fait parti des codes les moins propre que j'ai vu. Premièrement, quand tu as une suite de switch case ou des if/else, regarde si tu ne peux pas optimiser un peu. Un

    La fonction hh :

    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    function hh(){
        if (heure>=0 && heure<=4){
            Creneau = '04';
        }
        if (heure>4 && heure<=5){
            Creneau = '05';
        }
        if (heure>5 && heure<=6){
            Creneau = '06';
        }
        if (heure>6 && heure<=7){
            Creneau = '07';
        }
        if (heure>7 && heure<=8){
            Creneau = '08';
        }
        if (heure>8 && heure<=9){
            Creneau = '09';
        }
        if (heure>9 && heure<=10){
            Creneau = '10';
        }
        if (heure>10 && heure<=11){
            Creneau = '11';
        }
        if (heure>11 && heure<=12){
            Creneau = '12';
        }
        if (heure>12 && heure<=13){
            Creneau = '13';
        }
        if (heure>13 && heure<=14){
            Creneau = '14';
        }
        if (heure>14 && heure<=15){
            Creneau = '15';
        }
        if (heure>15 && heure<=16){
            Creneau = '16';
        }
        if (heure>16 && heure<=17){
            Creneau = '17';
        }
        if (heure>17 && heure<=18){
            Creneau = '18';
        }
        if (heure>18 && heure<=19){
            Creneau = '19';
        }
        if (heure>19 && heure<=20){
            Creneau = '20';
        }
        if (heure>20 && heure<=21){
            Creneau = '21';
        }
        if (heure>21 && heure<=22){
            Creneau = '22';
        }
        if (heure>22 && heure<=24){
            Creneau = '23';
        }
        return Creneau;
    }
    On peut clairement la transformer dans un premier temps comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function hh() {
        if(heure<=4) {
            return '04';
        } else {
            return heure < 10 ? '0' + heure : heure;
        }
    }
    Tu remarqueras que ça fait EXACTEMENT la même chose.
    Si on optimise encore plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function hh() {
    return heure<=4 ? '04' : heure < 10 ? '0' + heure : heure;
    }
    Et elle est où cette fonction jour dont tu avais besoin je la vois pas dans le code que tu as filé

  15. #15
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2014
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    MERCI !!,

    Merci beaucoup, c'est vrai que cela allège totalement le code, et cela fonctionne aussi bien.

    pour le code concernant les jours, j'ai désactivées les lignes au moyen de "//" , tu les retrouvera de la ligne 9 à 19 et aussi une ligne un peu plus bas juste après le script des heure que tu viens de mettre a jour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var jour_xml = planning()
    et puis bien entendu, je voulez remplacer la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var horaires = new Spry.Data.XMLDataSet("conf0.xml", "Conf/Reunion", {sortOnLoad: "Heure", sortOrderOnLoad: "ascending"});
    par une ligne incluant la variable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var horaires = new Spry.Data.XMLDataSet("+jour_xml+", "Conf/Reunion", {sortOnLoad: "Heure", sortOrderOnLoad: "ascending"});

    mais cela ne fonctionne pas comme il faut car, il me semble que location.href n'est pas du tout adapté a ce code, mais je ne sait pas par quoi le remplacer...

  16. #16
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2014
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Bonsoir arnogues,

    as tu une idée, pour solutionner mes 2 problèmes ?

    Merci par avance de ta reponse

  17. #17
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    j'avoue ne pas comprendre ta façon de travailler

    tu connais les paramètres de fonctions car définir une variable heure en dehors de la fonction pour l'utiliser à l'intérieur C'est plutôt étrange.

    ensuite tu n'arrête pas de faire de if des switch pour positionner des valeurs qui son déjà définie
    par exemple dans la série de if de pour le créneau horaire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    heure = madate.getHours();
    //21
    //à quoi sert vu que heure et une heure entière 
    if (heure>20 && heure<=21){
        Creneau = '21';
    }
    l'heure est obligatoirement entière pourquoi la comparer ainsi
    à la rigueur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (heure=21){
        Creneau = '21';
    }
    bien qu'un bête toString() fasse l'affaire.

    de plus depuis le début on te réponds que ça ne sert a rien d'enchainer les if et les swith
    il suffit de faire un tableau ou une fonction
    on t'en a donnée plusieurs

    de plus tu fais des if sans else
    explique nous pourquoi tester si heure est compris entre 4 et 5 puis 5 et 6 etc. si le premier if est satisfait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if() {
    } else if() {
    } else if() {
    } else if() {
    } else if() {
    } else if() {
    } else if() {
    } else if() {
    } else if() {
    } else if() {
    } else if() {
    } else {
    }
    même remarque sur la fonction planing la concaténation de chaine ça existe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var aujourdhui = new Date()
     var jour = aujourdhui.getDay()
    location.href = 'conf0' + jour + '.xml';
    et pour finir comment exécuter du code quand à l'instruction précédente on demande au navigateur de quitter la page
    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
    function planning() {
     var aujourdhui = new Date()
     var jour = aujourdhui.getDay()
     if (jour == 0) location.href = "conf00.xml";
     if (jour == 1) location.href = "conf01.xml";
     if (jour == 2) location.href = "conf02.xml";
     if (jour == 3) location.href = "conf03.xml";;
     if (jour == 4) location.href = "conf04.xml";
     if (jour == 5) location.href = "conf05.xml";
     if (jour == 6) location.href = "conf06.xml";
     //lorsque la fonction est exécuté ici le navigateur à changé de page au moins un des location.href= à provoqué le changement de page.
     }
    //ici on appelle la fonction donc le navigateur change de page
    var jour_xml = planning();
    //cette action si elle a le temps d'être exécuté est perdu car le navigateur à quitté la page
    var horaires = new Spry.Data.XMLDataSet("+jour_xml+", "Conf/Reunion", {sortOnLoad: "Heure", sortOrderOnLoad: "ascending"});

    A+JYT

  18. #18
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2014
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Bonsoir sekaijin,

    Grace à l'aide apportée par arnogues, j'ai pu mettre a jour mes erreurs concernant les if des switch pour le créneau horaire, je n'ai juste pas retransmis la pièce jointes corrigée, dans les réponses suivante, sur le forum.
    Tu la trouveras ci-dessous, en pj., pour plus de lisibilités.

    Pour la fonction planning, comme j'ai pu l'indiquer précédemment, je n'ai hélas pas les compétences nécessaires pour rédiger ce type de code, (j'ai donc bidouillé...) c'est donc tout l'intérêt de la création de cette discutions...

    Je cherche de l'aide pour remplacer cette fonction par un code me permettant le changement de fichier XML selon le jour.

    peux-tu m'aider sur ce point ? ( il dois s'agir de ce que tu nomme "concaténation de chaine"...)

    enfin, j'aimerais pouvoir afficher a partir d'une heure et non uniquement l'heure actuelle, comme cela est le cas actuellement.
    exemple : si regExp est égal a 10, dans (str && str.search(regExp) != -1), actuellement je vois affiché uniquement les éléments se produisant à 10h.
    J'aimerais plutôt qu'il affiche ceux de 10h, suivi de ceux de 11h, jusqu'à la fin de ma liste XML.

    pense tu que cela soit possible ? et si oui comment ?
    Fichiers attachés Fichiers attachés

  19. #19
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2014
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Bonjour sekaijin,

    as tu eu le temps de voir, pour m'éclairer sur mon script ?

    merci d'avance

Discussions similaires

  1. [Débutant] Affecter une variable d'une classe C# à une variable Javascript
    Par SultanGeek dans le forum C#
    Réponses: 0
    Dernier message: 20/06/2015, 20h42
  2. Réponses: 2
    Dernier message: 16/02/2010, 21h23
  3. Réponses: 1
    Dernier message: 30/11/2009, 15h29
  4. [XL-2007] Intégrer une variable pour une cellule
    Par toinou62 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/04/2009, 23h41
  5. Utiliser une variable pour une source
    Par ZenBien dans le forum ActionScript 3
    Réponses: 3
    Dernier message: 15/05/2008, 20h14

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