Hej NG,
Jeg er først for ganske nylig begyndt at grave lidt i mulighederne med
Ajax. Nedenstående er måske ganske fundamentalt - men jeg håber at I har
en god løsning...
Grundlæggende handler det om, at jeg er ved at lave et forholdsvist
simpelt billed-galleri. Brugeren præsenteres for billeder og subdirs som
findes i det aktuelle dir. Klikker de på et af de viste subdirs
genereres der en ny liste etc.
Det er jo en opgave som helt oplagt løses vha. Ajax. I øjeblikket
benytter jeg 'responseText' men egentligt er 'responseXML' jo den
pæneste løsning.
I korte træk generes indholdet af noget lig nedenstående - som innerHTML
så sættes lig:
<?
folder_navigation();
// Build the folder list display...
print "<div id=\"folders\">";
foreach($dir_arr as $dir) {
?>
<div class="folder"
onclick="document.getElementById('description_body').innerHTML='';
display_folder('<?=$dir?>');"
onmouseover="document.getElementById('description_body').innerHTML='<?=$dir?>'"
onmouseout="document.getElementById('description_body').innerHTML=''">
<img src="gfx/folder_icon.png" />
<br />Description of folder...
</div>
<?
}
print "</div>";
// Build the thumbnail list display...
print "<div id=\"thumbnails\">";
foreach($file_arr as $file) {
?>
<div class="thumbnail"
onclick="document.getElementById('description_body').innerHTML='';
display_normal_pic('<?=$file?>')"
onmouseover="document.getElementById('description_body').innerHTML='<?=$file?>'"
onmouseout="document.getElementById('description_body').innerHTML=''">
<img src="<?=display_thumbnail($file)?>" />
</div>
<?
}
print "</div>";
?>
I bund og grund kan jeg jo sagtens generere noget XML som så fanges af
mit JavaScript. Udfordringen ligger så blot i at finde ud af hvordan jeg
får præsenteret det som noget brugbart HTML og de nødvendige triggers
(onmouseover osv.). Jeg har overvejet XSLT men synes generelt at der
ofte er lidt for mange ting der er browser-specifikke.
Egentligt kunne jeg jo godt embedde min html i xml'en, tage imod det i
javascriptet og blot "pakke det ud" - men det synes jeg ikke er nogen
specielt pæn løsning.
En anden udfordring, som også er årsagen til at jeg begyndte at kigge på
alternativer, er at jeg har brug for at afvikle noget javascript ved
runtime. innerHTML har det jo som bekendt ikke godt med <script> tags
(hvilket af sikkerhedsmæssige årsager jo også er forståeligt nok).
Håber at der, trods min lange smøre, er nogle der har gode idéer?
PFT
/Michael