[AJAX] - innerHTML nie działa dla table, alternatywa?

0

Witam,
Potrzebuje zmienic, a tak w zasadzie dodać do tabeli o pewnym id pewna wartosc w formacie:
<tr><td>costamcostam</td></tr>

Cała formuła dodawania jest w pętli, ktora z pewnej tablicy wybiera rekordy (array [0], array[1], array[2]....) i dodaje je do tabeli jako nastepne wiersze.

Niestety innerHTML nie działa dla tabel w IE. (Firefox i Opera działa)
Metoda .append z JQuery rowniez nie działa dla IE. (Na Operze działa)

Co tutaj mozna poradzic?

Pozdrawiam

0

insertRow + insertCell czy jakoś tak to szło.

0

a co za problem z tabeli walnąć div-a ?

0

Jezeli masz na mysli
<table><div id="Jakies tam ID"></div></table>

To powiem Ci ze nie dosc ze nie działa jak trzeba to jakos tak nieprofesjonalnie wyglada.
Ide poszukac cos na temat insertRow itd.

0

Istnieje coś takiego jak DOM i jego funkcje - zapoznaj się z tym, a nie z funkcjami właściwymi tylko IE.

0

insertRow + insertCell działa w porządku i należy do DOM.

Mam teraz pytanie chciałbym, podczas zdarzenia onmouseover zmienić kolor konkretnego wiersza, a podczas onmouseout odznaczyć, podczas onClick wywołać pewną funkcje, lecz niemam dostępu do poszczególnego wiersza , ponieważ wszystko robi za mnie insertRow. Jak można to naprawić?

0

insertRow zwraca element TR. A do dodawania zdarzeń w necie (także tu na forum) przewinęła się funkcja addEvent działająca pod każdą przeglądarką.

0

OK, ale nadal niewiem jak klikniety TD, przesłać do formularza. Wcześniej miałem załatwione to tak:
document.getElementById('dynamic_table').innerHTML += "<tr><td onclick =\"on_click(" + i + ")\"...............
Ten kod był w pętli i w razie kliknięcia na wybranym TD wywoływał funkcje on_click z argumentem licznika pętli. Ta na podstawie licznika kopiowała zawartość klikniętego wiersza do formularza.

Teraz nie bardzo mam jak to zastąpić.

0
function addEvent(obj, type, fn) {
	if (obj.addEventListener) {
		obj.addEventListener(type, fn, false);
	} else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() {obj["e"+type+fn](window.event); }
		obj.attachEvent("on"+type, obj[type+fn]);
	}
}
addEvent(TR,'click', funkcja);
function funkcja(e)
{
	var el;
	if (window.event && window.event.srcElement) { el = window.event.srcElement; }
	if (e && e.target) { el = e.target; }
	if (!el) { return; }

	//// TUTAJ el=klikniety element (ale dokładnie klikniety, nie ten ze zdarzeniem. Jesli masz obrazek w td, to dostajesz img, a nie TD czy TR.
}
0

Przyznam, ze nie działa mi nadal.

addEvent dodaje zdarzenie do jakiegos obiektu, na przykład TAGU zdarzenie po ktorym wywoływana jest funkcja, ale bez (), ani bez parametru.

Funkcja "funkcja" ma ustawiony parametr e (skąd?). Następnie zaleznie od (czegoś) do elementu el przypisywany jest jakaś wartość. Na końcu funkcja coś zwraca, jezeli el nie jest zdefiniowny.

Probowałem za pomoca addEvent wywołać inna funkcje i niewiem czemu, ale nie reaguje na kliknięcie.

0

e zawiera informacje o zdarzeniu. el zawiera element klikniety/hoverniety (czy co tam dales jako zdarzenie). Jak do tej pory nie spotkalem sie zeby mi ta funkcja nie dzialala.

0

Masz może jakiś gotowy, nawet najprostszy, ale działający przykład wykorzystania tej funkcji?

Wtedy na zasadzie prób i błędów dałbym rade zaimplementować ją u siebie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1