Autor Zpráva
ato3
Profil
Ahoj, mám problém s ajaxem.. všude mi funguje, ale v IE7 nic, řekl bych, že je problém v JS, protože mi ani nevyskočí alert. Např tuhle fci volám onclick="vyber_pilota();" .. je to ojedinělý problém, nebo je známé, že se taková chyba vyskytuje?

tady je JS fce pro příklad
function vyber_pilota(vyber_pilota) {
	var hlavicka = document.getElementsByTagName('head')[0];
	var dataLoader = document.getElementById('scriptLoader');
	
	var id_clovek = document.getElementById('id_clovek').value;
	
alert(id_clovek);
	if(dataLoader){ 
	hlavicka.removeChild(dataLoader);
	}
	script = document.createElement('script');
  	script.id = 'scriptLoader';
  	script.src = "ajax-skript.php?id_clovek=" + id_clovek + "&vyber_pilota=" + vyber_pilota;
	hlavicka.appendChild(script);
	return false;
	}


díky za reakce
peta
Profil
ato3
mam zkusenosti s tim, ze ajax v IE nefunguje, pokud neni pusteny z venci nebo pres localhost.
Pokud mas problem v ajaxu, neuvedl jsi ajaxovy script. Lze tudiz predpokladat, ze je ajax dobre a chyba je v tom ostatnim?
V kazdem pripade, co hlasi JS konzola ve FF / IE / O ?

Podle toho, co pises je nejspis problem s objekty, ze se nenactou a program skonci driv nez muze vyskocit alert. Zkus toto:
alert(1)
var hlavicka = document.getElementsByTagName('head')[0];
alert(2)
var dataLoader = document.getElementById('scriptLoader');
alert(3)
var id_clovek = document.getElementById('id_clovek').value;
alert(4)
alert(id_clovek);
Ktery alert vyskoci, tam je to mozna jeste dobre. Pred dalsi alert bych pak dal alert(hlavicka). Pokud ti nevyskoci 1,2,3,4 , pak je takovato operace zbytecna a je problem jeste pred tim.
Chamurappi
Profil
Reaguji na ato3:
je to ojedinělý problém, nebo je známé, že se taková chyba vyskytuje?
Jaká chyba? Uveď odkaz na živou ukázku.

Připadá mi nevhodné nazývat stejně funkci a argument funkce.
Jestli ti nevyskakuje ani ten alert, znamená to, že Explorer nenašel element s id="id_clovek".
peta
Profil
ato3
mno, IE ma zajimavou vlastnost, ze on zkusi najit ID a NAME jako promennou. Cili
var id_clovek = document.getElementById('id_clovek').value;
prepisujes sam sebe, v podstate. Ale to by mohlo fungovat. Chtelo by to zkusit v tvem kodu :)
ato3
Profil
Pro upřesnění zde uvádím příklad, který nefunguje v IE6 i 7. Část funguje, pro porovnání se podívejte v mozille, jak to má fungovat.
http://akvarium.navipro.cz/ota/piloti.php
Chamurappi
Profil
Reaguji na petu:
IE ma zajimavou vlastnost, ze on zkusi najit ID a NAME jako promennou
Tuto vlastnost „var“ vždy obejde.

Reaguji na ato3:
Explorer neumí měnit innerHTML tabulky. To je celý problém.
ato3
Profil
Chamurappi
Díky, zjistím co s tím, hlavně, že už snad vím kde je chyba.
peta
Profil
ato3
Budu predpokladat, ze to byl jediny problem...
Muzes prepisovat celou tabulku nebo pouzit appendChild.
<div id=tabulka></div>
tabulka.innerHTML = '<table>...</table>'

Chamurappi
Mas to vyzkousene i pro funkci play? Mam pocit, ze sveho casu jsem mel dost problem napsat:
function play() {...}
pro IE.
Je mozne, ze by to slo obejit pres
var play = function() {...}
ale nezkousel jsem to, zatim. Zatim to obchazim zmenou nazvu na game_play()
ato3
Profil
peta
Takže by stačilo vkládat celou tabulku i s tagem <table> do divu?
Např.
<div id=prvek>
a sem vložit celou tabulku generovanou v PHP a pomocí JS vloženou do dokumentu
</div>

Nevkládat jen obsah tabulky bez začátečního a konečnýho tagu? To mi nepřijde zas tak semantické, ale je pravda, že u takového webu semantika nehraje příliš roli.
ato3
Profil
peta
Jak tak na to koukám, funguje to, tak, že musím vložit celou tu tabulku do divu s id. Ještě mi v IE nefunguje jedna věc. Vložení option do selectu, kde ma select nejaky id. Musím ty option vložit i se selectem do divu? Jdu to vyzkoušet..
peta
Profil
ato3
viz Chamurappi, IE ma problem s upravou tabulky.

V pripade innerHTML funguje vypsani cele tabulky. To jsem tim chtel rici.
Toto reseni muze byt silene pomale pri vetsi tabulce, rekneme 10x50, 50x50 a pod. Nevim, jak to resis ty, jestli jde o ajaxove usporne reseni, pak bych tabulku prevedl na JS pole a pridaval do tohoto pole radky. A podle tohoto pole pak generoval tabulku. Ja jen aby te nenapadla ta silenost zbytecne posilat celou tabulku. Samozrejme i to jde a v jistych pripadech je to lepsi.

Dalsi moznosti je pouzit JS DOM, funkce appendChild.

Zakladem prace je umet take hledat priklady sam:
Google.com table add row javascript

S options je to podobne. Funguje vypsat cely select. Tam problem neni.
Jenze tady funguje i normalni pridavani. Opet se staci podivat po inetu...
http://www.volny.cz/peter.mlich/www.htm#mssub12
http://www.volny.cz/peter.mlich/www.htm#main6

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0