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 :

Créer une valeur issue de l'association d'une autre valeur avec un mot


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Webdesigner
    Inscrit en
    Octobre 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2014
    Messages : 21
    Points : 10
    Points
    10
    Par défaut Créer une valeur issue de l'association d'une autre valeur avec un mot
    Bonjour/bonsoir, à toutes et à tous.

    J'aurais besoin d'un petit code JS pour créer une valeur résultant de l'association d'une autre valeur avec un mot, SVP.

    J'ai une fonction qui marche, que je veux faire évoluer pour ajouter un nouvel élément variable. Je vais tenter de vous expliquer au mieux ce que j'aimerais obtenir.

    C'est une fonction qui montre, entre autre, une affiche de film, et la nouveauté est que son nom peut varier selon si c'est une affiche de cinéfilm (cf) ou de vidéofilm (vf).
    Le nom du fichier JPG de l'affiche est donc soit "000_année_cf.jpg" soit "000_année_vf.jpg" ("000" étant le Numéro du film dans ma base de données, et sera par exemple "001_2024_cf.jpg" ou "001_2024_vf.jpg"), et on voit donc qu'il y a une partie commune "000_année".

    A l'ouverture de la page, j'ai une valeur "ec", qui a été récupérée avec un autre JS dans l'URL d'un lien (par exemple "page.html?numerodefilm=001_2024") cliqué sur une autre page et représentant cette fameuse partie commune "000_année".

    Il y a aussi une autre valeur, qui a été récupérée dans le fichier contenant ma base de données et mes JS : il s'agit de celle dont le format de nom est "Type de film Numéro du film _année" (par exemple, "TypeFilm001_2024" pour le premier film de 2024) et dont la valeur peut être "cinefilm" ou "videofilm selon le type de film, ce qui donne par exemple dans le code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var TypeFilm001_2024="cinefilm";

    Il faudrait donc que cette chère fonction associe d'abord le mot "TypeFilm" à la valeur "ec" afin de récupérer la valeur "Type de film Numéro du film _année" ("TypeFilm001_2024") pour qu'ensuite la fonction if / else fasse que la valeur "tdfresult" soit "_cf" ou "_vf" .

    L'apprenti en programmation JS que je suis a tenté un bout de code, qui forcément ne fonctionne pas, je suis loin du compte, d'où mon appel à l'aide ici. Le voici :


    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
    function AfficheDetailsFilm()
    {
    var ec=numeroFilm("numerodefilm"); // Valeur "numerodefilm_annee". 
     
     
    var tdf="TypeFilm"+ec;      //  J'ai ajouté cette ligne...
    var tdfresult;                    // J'ai ajouté cette ligne...
    if tdf="cinefilm";              // J'ai ajouté cette ligne...
    {                                    // J'ai ajouté cette ligne...
    tdfresult="_cf";               // J'ai ajouté cette ligne...
    }                                    // J'ai ajouté cette ligne...
    else                               // J'ai ajouté cette ligne...
    {                                  // J'ai ajouté cette ligne...
    tdfresult="_vf";             // J'ai ajouté cette ligne...
    }                                 // J'ai ajouté cette ligne...
     
     
    document.write("<p class='Tableau2CelluleAffiche'><img src='images/affiches/"+ec+""+tdfresult+".jpg' class='AfficheDuFilm'></p>");  // Ici, j'ai ajouté la valeur "+tdfresult+" avant ".jpg".
    }

    Un grand MERCI d'avance à celle ou à celui qui pourra m'aider à résoudre ce problème.

    Bonne journée/soirée.

  2. #2
    Membre averti Avatar de ASCIIDEFOND
    Homme Profil pro
    Autodidacte passionné
    Inscrit en
    Novembre 2002
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Autodidacte passionné

    Informations forums :
    Inscription : Novembre 2002
    Messages : 235
    Points : 439
    Points
    439
    Par défaut
    Salut pat_fr38,

    Si cela peut être utile ?
    Code html : 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
    <!DOCTYPE html>
    <html lang="en">
     
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style>
            #container {
                display: grid;
                grid-template-columns: repeat(2, 1fr);
                column-gap: 4em;
                margin: 0 auto;
                width: max-content;
            }
     
            .liste {
                width: 500px;
                height: 400px;
                border: 1px solid black;
                overflow: scroll;
            }
        </style>
     
    </head>
     
    <body>
        <div id="container">
            <div id="cf" class="liste"></div>
            <div id="vf" class="liste"></div>
        </div>
        <div style="width: 100%; text-align: center; margin-top: 20px;">
            <button onclick="trier()" style="  width: 150px; height: 35px;cursor: pointer;">Trier</button>
        </div>
     
        <script>
            // l'array pages sont les URLs des pages
            let pages = ["page.html?numerodefilm=001_2024_cf.jpg", "page.html?numerodefilm=005_2024_cf.jpg", "page.html?numerodefilm=003_2024_vf.jpg",
                "page.html?numerodefilm=021_2023_cf.jpg", "nul", "page.html?numerodefilm=012_2024_vf.jpg", "page.html?numerodefilm=030_2024_cf.jpg",
                "page.html?numerodefilm=040_2024_vf.jpg", "page.html?numerodefilm=051_2024_vf.jpg", "ici rien",
                "page.html?numerodefilm=015_2024_vf.jpg", "page.html?numerodefilm=099_2024_cf.jpg", "page.html?numerodefilm=229_2024_cf.jpg"];
     
     
            function trier() {
                let x, srt, position,  tdf, tmp;
                for (x = 0; x < pages.length; x += 1) { // on boucle
                    srt = pages[x]; // page[0]="page.html?numerodefilm=001_2024_cf.jpg", pages[1]="page.html?numerodefilm=005_2024_cf.jpg", ect.. 
     
                    // Si "_cf" est présent dans pages[x] sinon c'est "_vf" qui sera alors normalement présent
                    srt.indexOf("_cf") != -1 ? position = srt.indexOf("_cf") : position = srt.indexOf("_vf");
     
                    if (position != -1) { // Si position n'est pas égale à -1, "_cf" ou "_vf" ont été trouvés 
                        tmp = srt.substring((position + 1), (position + 3)); // La variable tmp contiendra "vf" ou "cf"
                        tmp == "cf" ?  tdf = "Ciné" :  tdf = "Vidéo";// Si "cf" alors  tdf="Ciné" sinon  tdf="Vidéo"
     
                        // Affichage dans la <div> id="cf" ou id="vf"
                        document.getElementById(tmp).innerHTML +=
                            "<ul><li>Type film: " +  tdf + " film</li><li>URL: " + pages[x] + "</li></ul>";
                    }
                }
            }
        </script>
     
    </body>
     
    </html>

  3. #3
    Membre à l'essai
    Homme Profil pro
    Webdesigner
    Inscrit en
    Octobre 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2014
    Messages : 21
    Points : 10
    Points
    10
    Par défaut Merci quand même...
    Bonjour, ASCIIDEFOND.

    Désolé, je tarde à te répondre, parce que, en fait, n'ayant pas l'habitude du fonctionnement de ce site, je pensais avoir un e-mail m'informant qu'une réponse à ma question avait été postée, comme c'est le cas sur d'autres...

    Merci beaucoup pour ton code vraiment bien fait et expliqué. Cependant, il ne répond pas du tout à mes attentes... En revanche, il est intéressant et pourrait me servir pour autre chose.

    Pour mon problème, entre temps, j'ai trouvé une solution beaucoup plus simple : j'ai nommé les images d'affiche des vidéofilms "0000_annee.jpg" et celle des cinéfilms "000_annee.jpg".

    A +.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 26/05/2014, 11h11
  2. Copie table vers une autre et ajout d'autres champs
    Par oxygen240 dans le forum Requêtes
    Réponses: 2
    Dernier message: 23/02/2008, 22h45
  3. [GD] Perte de qualité lors de la superposition de 2 petites images sur une autre
    Par angebleu1759 dans le forum Bibliothèques et frameworks
    Réponses: 12
    Dernier message: 04/12/2007, 15h46
  4. Update d'un champs avec valeur d'une autre table.
    Par dbuweb dans le forum Requêtes
    Réponses: 2
    Dernier message: 20/06/2006, 11h36
  5. Réponses: 8
    Dernier message: 11/08/2005, 09h32

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