I have a block of code that reads json data, then constructs 50 divs with contest related information in it. I am working with Gleam.io so people can enter the contest. Each contest is it's own day and has a unique URL.
Currently I have it rendering all my boxes fine, putting in the correct data for each div. What I can't figure out for the life of me is when I click on a box, for it to find and pull the correct URL to put into the modal.
When I do it, the onclick will always just pull the last box's information and display that.
<script>
        // FETCHING DATA FROM JSON FILE
        $.getJSON("https://cdn.shopify.com/s/files/1/2660/5202/files/data.json?v=1624391152", 
            function (data) {
            var modal = '';
            var prizeState = '';
            var prizeURL = '';
            var card = '';
            // ITERATING THROUGH OBJECTS
            var cardwrapper = document.getElementById('cardWrapper');
            $.each(data, function (key, value) {
                var prize = '';
                var prizeState = value.prizeState;
                    prizeURL = value.entryForm;
                // DATA FROM JSON OBJECT
                var card = document.createElement('div');
                    card.setAttribute('data-modal', value.prizeDay);
                    card.classList.add('card');
                    prize += '<div class="entry-form" onclick="modalPop(' + value.entryForm + ')"><span class="entry-url">' + value.entryForm + '</span></div>' +
                        ' <div class=" ' + value.prizeState + '">' +
                        '<div class="prizeDay">Day ' + value.prizeDay + '</div>' +
                        /* '<div class="prizeDate"> ' + value.prizeDate + '</div>' + */
                        '<div class="prizePhoto"> <img src="' + value.prizePhoto + '" /></div>' +
                        '<div class="prizeTitle"> ' +  value.prizeTitle + '</div>' +
                        '<div class="prizeWinner">' + value.prizeWinner + ' ' + value.prizeCity + '</div>' +
                        '<span class="button btn btn-default prizeEnterButton">Enter Contest</span>'
                    prize += '</div>';
                    card.innerHTML = prize;
                    card.addEventListener('click', function(){
                        modalPop(prizeURL);
                        console.log(prizeURL, ' from onclick');
                    });
                    cardwrapper.appendChild(card);
                    console.log(prizeURL);
            });
        });         
    // Get the modal
    var modal = document.getElementById("myModal");
    // Get the button that opens the modal
    var btn = document.getElementById("myBtn");
    function modalPop(prizeURL) {
        console.log(prizeURL);
        var popupContent = '<h4>' + prizeURL + '</h4>' +
        '<span id="modalClose" class="close">×</span>' +
        '<span id="widget-code">' +
        '<iframe src="' + prizeURL + '" frameBorder="0" allowfullscreen></iframe>' +
        '</span>'
        $('#myModal #modalReplace').empty().html(popupContent);
        $('#myModal').fadeIn(200).addClass('modal-active');
    }
    // When the user clicks anywhere outside of the modal, close it
    window.onclick = function(event) {
        if (event.target == modal) {
            $('#myModal').fadeOut(200);
        }
    }
</script>
 
     
     
    