In un test a risposta multipla vorrei mostrare (in una nuova pagina) i risultati sotto forma di grafico a barre.
Premesso che non voglio usare programmi lato server, ho adattato degli script che mi risolvono la prima parte (mandare oggetti da una pagina all'altra) e l'ultima parte (creare un grafico con i risultati in percentuale).
Mi serve un sistema per legare le due cose.
Nella pagina col questionario c'è questa funzione
codice:
function nextpage() {
// Mando totale 1,2,3 etc a elemento MyValue del seguente form.
window.location.href = "send.html?MyValue.value='"+document.getElementById('totale1').value+
"'&MyTest.value='"+document.getElementById('totale2').value+
"'&MyTesta.value='"+document.getElementById('totale3').value+"'"
Nella pagina ricevente c'è una prima funzione che crea un array di oggetti col nome MySearch, tipo questo
myValue=AEIOU
Da lì, tramite un loop for e un eval vengono restituiti totale1, totale2 etc
codice:
function getFromSearch() {
var x = 0
mySearch = location.search.substr(1).split("&")
for (x=0;x<=mySearch.length;x++) {
eval("document.forms.myNewForm."+mySearch[x])
}
}
e i risultati sono mostrati in 3 text box. Fin qui tutto bene.
Ho trovato infine uno script che prende i dati da un array e li mostra sotto forma di grafico.
Il problema è che si parte da un array multi-dimensionale!!!
codice:
//DEFINE GRAPH VALUES [Item name, absolute value]
var graphx=new Array()
graphx[0]=["RAI1",60]
graphx[1]=["Canale5",24]
graphx[2]=["Sky",52]
La mia domanda è: anzichè inserire "a mano" i dati nell'array come si fa a creare due array
uno che contenga il nome dell'item (Rai1,Canale5...)
e l'altro che contenga IN AUTOMATICO i valori provenienti da getFromSearch()
e riunirli in un unico array multi-dimensionale
var graphx=new Array()
da lì in avanti c'è la funzione che crea il grafico...
Concettualmente mi sembra semplice, ma non so trovare una soluzione. PLEASE HELP!