Visualizzazione dei risultati da 1 a 10 su 11

Visualizzazione discussione

  1. #9
    Utente di HTML.it L'avatar di ninja72
    Registrato dal
    May 2020
    residenza
    -
    Messaggi
    319
    Potresti utilizzare l'API fetch (javascript) per prelevare i dati da un file json che contiene i vari testi anzichè metterli su file di testo separati.
    Lo puoi fare sia con un approccio di elementi fissi con tot elementi (bottoni e div contenitori che ho chiamato item), oppure dinamico in base ai base dati presenti sul file json.

    questo è il contenuto del file dati.json prensete nella root del progetto.
    codice:
    {
        "div1": "testo 1",
        "div2": "testo 2",
        "div3": "testo 3"
    }
    codice:
    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style>
            * {
                box-sizing: border-box;
            }
    
            #container {
                display: flex;
                flex: 1 1 0;
                margin-bottom: 20px;
            }
    
            .item {
                width: 200px;
                height: 100px;
                border: 1px solid red;
                overflow: auto;
                padding: 20px;
            }
        </style>
    </head>
    
    <body>
        <div id="container">
            <div class="item"></div>
            <div class="item"></div>
            <div class="item"></div>
        </div>
    
        <div id="buttons">
            <button id="b1">bottone1</button>
            <button id="b2">bottone2</button>
            <button id="b3">bottone3</button>
        </div>
    
    
        <script>
            const items = document.getElementsByClassName('item')
            const btn1 = document.getElementById('b1')
            const btn2 = document.getElementById('b2')
            const btn3 = document.getElementById('b3')
    
            const loadJson = async () => {
                const fileJson = await fetch('./dati.json')
                const dataJson = fileJson.json()
                return dataJson
            }
    
            (async function init() {
                const objJson = await loadJson()
    
                function viewItems(idx, div) {
                    items[idx].textContent = objJson[div]
                }
    
                btn1.addEventListener('click', viewItems.bind(this, 0, "div1"))
                btn2.addEventListener('click', viewItems.bind(this, 1, "div2"))
                btn3.addEventListener('click', viewItems.bind(this, 2, "div3"))
    
            })()
    
        </script>
    </body>
    
    </html>

    Mentre per il discorso dinamico potresti fare in questo modo.

    codice:
     <div id="container"></div>
        <div id="buttons"></div>
    
        <script>
            const container = document.getElementById('container')
            const items = document.getElementsByClassName('item')
            const btns = document.getElementById('buttons')
    
            const loadJson = async () => {
                const fileJson = await fetch('./dati.json')
                const dataJson = fileJson.json()
                return dataJson
            }
    
            (async function init() {
                const objJson = await loadJson()
    
                function viewItems(idx, div) {
                    items[idx].textContent = objJson[div]
                }
    
                const objJsonCount = Object.keys(objJson).length
    
                for (let i = 0; i < objJsonCount; i++) {
                    const myDiv = document.createElement('div')
                    myDiv.setAttribute('class', 'item')
                    container.appendChild(myDiv)
                    const myBtn = document.createElement('button')
                    myBtn.setAttribute('class', 'mybtn')
                    myBtn.textContent = `bottone${i + 1}`
                    btns.appendChild(myBtn)
                    btns.children[i].addEventListener('click', viewItems.bind(this, i, `div${i + 1}`))
                }
    
            })()
    
        </script>
    Ultima modifica di KillerWorm; 20-10-2021 a 22:06 Motivo: Tag code fixed

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.