Sto realizzando un sito che consiste in una sorta di quiz. Nella schermata home sono presenti 6 pulsanti ognuno per un argomento (es. cinema, musica…). Per ciascun argomento sono disponibili 10 domande, che possono essere a risposta aperta, con 4 opzioni o vero o falso. Ho inserito le domande in un array bidimensionale (uno per argomento) diviso in questo modo: tipo (vero falso, aperta, 4 opzioni), domanda, opzioni, soluzione. Per ciascun tipo di domanda ho realizzato un diverso html. Quando nella home viene premuto un pulsante di una categoria viene richiamata una funzione che crea un numero casuale tra 0 e 9, che corrisponderà ad una riga dell'array. A questo punto tramite una serie di if ed else if il codice verifica di che tipo è la domanda e in base ad esso viene aperto uno dei tre file html. Adesso il programma dovrebbe cercare nel file html che ha appena aperto un paragrafo (<p>) che ha come id testo_domanda, e sostituirne il contenuto con la domanda presente nell'array. Il problema è che il paragrafo non viene cercato nel file che viene aperto all'oncklick del pulsant, ma nella schermata home, di conseguenza la domanda non compare a schermo. Il tipo di domanda è rappresentato da dei numeri (1= dkomanda aperta, 2=vero o falso, 4= 4 opzioni). A seguito il codice in js interessato:
const domande_cinema =[
["4","Chi ha vinto il premio oscar come miglior attore non protagonista nel 2020?", "Tom Hanks,Brad Pitt,Leonardo DiCaprio,Al Pacino","Brad Pitt"],
["2", "The Dark Knight e Inception sono due film dello stesso regista.","Vero,Falso","Vero"],
["1","Scrivi il nome del regista di Pulp Fiction","","Quentin Tarantino"],
["4","Quale tra questi attori non ha mai interpretato Spiderman?","Tobey Maguire,Andrew Garfield,Tom Hardy,Tom Holland","Tom Hardy"],
["2","Scarface è un film di Martin Scorsese","Vero,Falso","Falso"],
["1","Quanti capitoli ha la saga di Scream?","","6"],
["4","Quale tra questi film ha vinto il premio oscar come miglior film straniero?","Parasite,Natale in India,L'Odio,E' stata la mano di Dio","Parasite"],
["2","Vero o falso? 'Avatar' è il film con il maggior incasso di tutti i tempi.","Vero,Falso","Vero"],
["1","In che anno è uscito al cinema il primo film di Star Wars?","","1977"],
["4","Quale premio viene assegnato al Festival del cinema di Venezia?","David di Donatello,Palma d'Oro,Orso d'Oro,Leone d'Oro","Leone d'Oro"]
]
function getRandomInt(max) {
return Math.floor(Math.random() * max);
}
function vaia2Dom() {
window.location.href = '2dom.html';
}
function vaia4Dom() {
window.location.href = '4dom.html';
}
function vaia1Dom() {
window.location.href = '1dom.html';
}
function apriCinema(){
console.log(domande_cinema[1][0]);
let n=getRandomInt(10);
var testo= domande_cinema[n][1];
if(domande_cinema[n][0]==4){
vaia4Dom();
var element = document.getElementById("testo_domanda");
element.innerHTML = "Hello World!";
} else if(domande_cinema[n][0]==2){
vaia2Dom();
console.log("2!");
} else if(domande_cinema[n][0]==1){
vaia1Dom();
console.log("1!");
}