2016-03-07 3 views
-1

Это мой код Я пытаюсь создать систему оценки. Gusenbauer должен быть местом для учеников и 1ahitm, например, его классом Я из java, и эти массивы здесь путают меня. Что мне нужно сделать, чтобы сделать что-то вроде noten [ученик] [класс] = класс; возможное? Также мой document.notenformular.name.value не определен, любые идеи почему?Проблемы с инициализацией 2-мерного массива

var noten = new Array(); 
    noten["Gusenbauer"] = new Array(); 
    noten["Gusenbauer"]["1ahitm"] = 0; 
    noten["seppl"]["1ahitm"] = new Array(); 
    noten["seppl"]["1ahitm"] = 0; 
    noten["leo"]["1ahitm"] = new Array(); 
    noten["leo"]["1ahitm"] = 0; 
    noten["Gussenbauer"]["2ahitm"] = new Array(); 
    noten["Gussenbauer"]["2ahitm"] = 0; 
    noten["steiner"]["2ahitm"] = new Array(); 
    noten["steiner"]["2ahitm"] = 0; 
    noten["roland"]["2ahitm"] = new Array(); 
    noten["roland"]["2ahitm"] = 0; 
    alert(noten["roland"]["2ahitm"]); 
    alert("was"); 
function noteEintragen() { 
     var name = document.notenformular.name.value; 
     alert(name); 
     var note = document.notenformular.note.value; 
     var klasse = document.notenformular.klasse.value; 

     noten[name][klasse] = note; 


    } 
ody> 
<div id="wrapper"> 

    <h1>Name - Noteneintragung - Klassenspiegel</h1> 
    <hr> 
    <p>Klasse auswählen, Name auswählen, Note eintragen</p> 
    <form name="notenformular"> 
     Klasse 
     <br> 
     <select name="klasse" onchange="java_script_:show(this.options[this.selectedIndex].value)" size="20" tabindex="2"> 
      <option value="1ahitm">1ahitm</option> 
      <option value="2ahitm">1bhitm</option> 

     </select> 
     <br> 
     <br> Name 
     <br> 
     <div id="hiddenDiv" style="display:none"> 
      <select name="name" id="test" size="20" tabindex="1"> 
       <option value="Gusenbauer">Gusenbauer</option> 
       <option value="seppl">seppl</option> 
       <option value="leo">leo</option> 
      </select> 

ответ

1

Просто используйте объект яваскрипта для хранения значений

noten = { 
    "Gusenbauer" :{ 
     "1ahitm" : 0, 
     "2ahitm": 0 
    }, 
    "seppl" :{ 
     "1ahitm" : 0 
    }, 
    "steiner" :{ 
     "2ahitm" : 0 
    }, 
    "roland" :{ 
     "2ahitm" : 0 
    } 
}; 

теперь вы можете использовать квадратные скобки, обозначения для доступа к значениям из Noten объекта.

noten ["roland"] ["2ahitm"]; // 0

+0

Хорошо, но могу ли я, если смотреть дальше, не заметить [ученик] [класс] = примечание? И знаете ли вы, почему note.value не определено. Также я могу использовать для циклов? потому что мне нужно получить их, чтобы печатать их, например, Edit: oh и thanks by way :) –

+0

вам нужно сделать это в двух операциях. noten [ученик] = {}; noten [ученик] [класс] = примечание; – Darshan

+0

Но почему? Зачем мне пусто? {Прошу прощения, это немного сложно для меня. Поэтому, если бы я хотел увеличить объект до 3, было бы тогда noten [ученик] = {}; noten [subject] = {}; noten [ученик] [класс] [субъект] = 2; –