/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
PHP, Ajax og XML problem
Fra : Ukendt


Dato : 20-03-08 20:23

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

 
 
Birger (21-03-2008)
Kommentar
Fra : Birger


Dato : 21-03-08 07:52

"ziGGi" <ziggiman_REMOVE_ME_hotmail.com> skrev i en meddelelse
news:47e2b990$0$1985$ba624c82@nntp02.dk.telia.net...
> Hej NG,
8X
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.
8X
> 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?
>

Hvorfor er XML "pænere" end Tekst eller HTML? XMLHTTPRequest objectet er jo
faktisk beregnet til det hele...
Alternativer til innerHTML, er XML eller COM.
Jeg ved godt, at nogle mener det er forkert at bruge innerHTML. I praksis
fungerer det nemt og upåklageligt - jeg har lidt svært ved at se, at man
skal bruge langt besværligere og ressourcekrævende alternativer, udelukkende
fordi nogle mener det er principielt forkert..
AJAX er jo <script> - så jeg forstår ikke at det er et problem at innerHTML
ikke kører indlejrede script.
Den response du lige har fået fra serveren, kan da sagtens indeholde info om
hvilke andre funktioner der skal kaldes, efter indsættelse af innerHTML.
Der skal parses lidt - men det er nemmere end at oversætte XML til HTML..

Birger
-----
http://bbsorensen.dk
http://varmeretter.dk - hverdagsmad. Sundt, nemt, hurtigt og billigt. Daglig
opdatering.



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste