Cześć, natrafiłem na problem, który okazał się dla mnie dość dziwny. Nie mogę przypisać do div.innerHTML czystego tekstu ze zmiennej.
Chodzi o to, że używając AJAX pobieram pewne dane z bazy danych. Dane przychodzą i są wyświetlane w listbox (obiekt select). Teraz chcę, żeby po kliknięciu na element listboxa, na konkretnym divie, pojawiła się konkretna informacja. Robię to w taki sposób:
(fragment funkcji AJAX, w której tworzę elementy listboxa)
len = data.length; //data to tablica z danymi
for(i = 0; i<len; i++)
{
//tworzę i dodaję option do select
var option = document.createElement("option");
option.text = data[i]["name"];
option.value = data[i]["ID"];
option.onclick = function()
{
document.getElementById('bm_reason').innerHTML = data[i]["reason"];
}
select.add(option, null);
}
Efektem tego jest dodanie elementów do listBoxa, ale jak klikam element, to dostaję błąd: "data[i] is undefined". Próbowałem też na inne sposoby:
div.innerHTML = new String(data[i]["reason"]);
div.innerHTML = data[i]["reason"].substr(0);
ale efekt zawsze był taki sam. Czy ja mogę to zrobić jakoś bez tworzenia dodatkowej globalnej tablicy, w której będę te stringi trzymał?