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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    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
    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 expérimenté

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

    Informations forums :
    Inscription : Juillet 2012
    Messages : 183
    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 averti
    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
    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 confirmé
    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
    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 averti
    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
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 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 averti
    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
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 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 confirmé
    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
    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";
    }

  10. #10
    Membre averti
    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
    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"});

  11. #11
    Membre expérimenté

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

    Informations forums :
    Inscription : Juillet 2012
    Messages : 183
    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

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