AJAX PHP XML en XSLT

Pagina: 1
Acties:

  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 22:43
De volgende situatie dient zich aan: ik wil gebruik gaan maken van Ajax om informatie te posten en terug te krijgen zonder dat de gebruiker de pagina hoeft te refreshen. Het gaat hierbij om een invoertabel waarbij dus met ALT+S gesaved kan worden (via AJAX).

De opbouw van mijn pagina zorgt echter voor nogal wat problemen daarin. De structuur is alsvolgt:
- file main.php vraagt de engine class op die zorgt voor het afhandelen van de request
- de juiste file wordt geinclude waarin de gegevens uit de database gehaald worden
- de gegevens worden in een DOM structuur geplaatst
- een stylesheet (XSL) wordt in een DOM structuur geladen (statisch sheet)
- de twee worden met elkaar gecombineerd door XSLT en de output daarvan wordt naar de browser verzonden

Hoe en waar kan ik nu Ajax gaan gebruiken? De meeste scriptjes vragen om wat tags binnen de header (javascript) maar dat gaat nu nogal lastig aangezien ik de stylesheet statisch inlaadt. Een oplossing zou zijn om de gegenereerde code uit de ajax class in de XML structuur te plaatsen en die vervolgens met de XSL weer in de header te plakken, ik vraag me alleen of of dit netjes en handig is. Iemand anders hier nog heldere ideeen over?

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 23-04 21:46

LauPro

Prof Mierenneuke®

Bij AJAX heb je een klein stukje client runtime die meestal statisch is. En een stukje 'dynamic runtime' die af hangt van welke actie er moet worden ondernomen. Deze code moet je dan ook toespitsen op je formulierstructuur e.d.. Dit is dus afhankelijk van de opbouw. Wellicht dat je in de DOM structuur een stukje vrij kan houden voor deze javascriptcode?

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 22:43
Dat kan, maar ik heb ook al oplossingen gevonden die enkel met javascript werken, die krijg ik alleen niet aan de praat. Dus meteen nog maar een vraag er achteraan: welke oplossingen gebruiken jullie???

Ben tot nu toe SAjax, XAjax en SACK tegen gekomen, die laatste wil niet, de andere twee moet ik mee googelen om de dynamische code in het uiteindelijke resultaat mee te krijgen.

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 23-04 21:46

LauPro

Prof Mierenneuke®

Ik heb zelf een soort van library gemaakt om een AJAX-functionaliteit aan te spreken. In principe is AJAX (imo) een groot woord voor een vrijbrief om eindelijk weer eens aan te mogen kloten met Javascript. Want hoe je het ook wendt of keert; Javascript is en blijft in de meeste gevallen een ranzige work-a-round.

Maargoed, dat is niet je vraag. Ik denk dat als je zelf al een bepaalde structuur hebt het makkelijker is om een AJAX-implementatie vanaf het begin op te bouwen. AJAX is gewoon een beschrijven netals DHTML. DHTML is geen standaard of wat. Maar een mannier om HTML op eenzelfde niveau interactief te maken zoals een normale applicatie (zie Pellepaint, Nu werkte Pellepaint volgens mij al met een vorm van AJAX omdat er een bewaarfunctie in zat.)

Maar als je echt met een bestaand pakket aan de slag wil gaan vrees ik wel dat je het een en ander aan zult moeten passen en het is dan ook nog maar de vraag hoe goed zo'n pakket aansluit op jouw software. Want - nomaals - AJAX kan al uit 6-javascript regels te bestaan. Je hebt het echt niet over includes van 20kB zoals bij coolmenus oid.

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 22:43
Prima, kun je eens een linkje posten van die Ajax structuur die je zelf hebt? Want als ik het goed begrijp raad je me dus aan om gewoon zelf wat codes te gaan schrijven op de plaatsen waar dat nodig is... dat is opzich wel een prima oplossing want de URL's waar naar gepost moet worden blijven toch hetzelfde. Het wordt inderdaad een "save" functie, dus daar is weinig dynamisch aan op de gegevens die verstuurd worden na.

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 22:35

chem

Reist de wereld rond

iCe01 schreef op vrijdag 28 oktober 2005 @ 15:40:
Hoe en waar kan ik nu Ajax gaan gebruiken?
Is AJAX het doel? Zo ja, waarom?
LauPro schreef op maandag 31 oktober 2005 @ 00:06:
Ik heb zelf een soort van library gemaakt om een AJAX-functionaliteit aan te spreken. In principe is AJAX (imo) een groot woord voor een vrijbrief om eindelijk weer eens aan te mogen kloten met Javascript. Want hoe je het ook wendt of keert; Javascript is en blijft in de meeste gevallen een ranzige work-a-round.
Daar ben ik het niet echt mee eens, er zijn wel degelijk zaken met AJAX mogelijk die hiervoor niet overwogen werden of mogelijk waren.


Anyways, wat je wil doen is er zelf mee gaan spelen. Er zijn zat voorbeelden van AJAX, en je basis-idee is echt te simpel (haal met JS alle velden op, urlencode ze en doe een request met input.php?bla=dit&meukee=dat) en klaar.
Alles wat je meer wil is redelijk voor zich sprekend; als je ergens een specifieke vraag over hebt, stel hem dan gerust; maar probeer het eerst eens.

Klaar voor een nieuwe uitdaging.


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 22:35

chem

Reist de wereld rond

en meteen een move naar W&G, JS valt onder W&G namelijk :)

Klaar voor een nieuwe uitdaging.


  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 23-04 21:46

LauPro

Prof Mierenneuke®

chem schreef op maandag 31 oktober 2005 @ 12:34:
Daar ben ik het niet echt mee eens, er zijn wel degelijk zaken met AJAX mogelijk die hiervoor niet overwogen werden of mogelijk waren.
Dat bedoel ik juist, met AJAX wil men een taboe doorbreken en min of meer een soort vrijbrief afgeven om nu eindelijk wel weer met Javascript aan de slag te mogen. Vroeger was Javascript in veel gevallen uit den boze. Een Javascriptloze site was gewoon veel netter. Ik wil niet zeggen dat het een slechte onwikkeling is, maar bedenk wel waarmee je aan de slag gaat.

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025

SchizoDuckie

Kwaak

LauPro schreef op maandag 31 oktober 2005 @ 15:38:
[...]
Dat bedoel ik juist, met AJAX wil men een taboe doorbreken en min of meer een soort vrijbrief afgeven om nu eindelijk wel weer met Javascript aan de slag te mogen. Vroeger was Javascript in veel gevallen uit den boze. Een Javascriptloze site was gewoon veel netter. Ik wil niet zeggen dat het een slechte onwikkeling is, maar bedenk wel waarmee je aan de slag gaat.
Dit vind ik dus echt kant noch wal slaan...
Je zit gevangen in het hokje waar je jezelf in plaatst op deze manier.

Wie heeft gezegd dat javascript uit den boze was? (quotes?) Wie heeft gezegd dat een javascriptloze site netter was? (quotes?)

Het probleem was, dat mensen alleen maar ranzige 'sneeuw' scriptjes, en nutteloze 15-seconden-durende, 150kb-vretende page transitions inbouwden omdat veel mensen nog niet genoeg kennis hadden om zelf iets interessants en bruikbaars te bedenken. Dát soort dingen werd bestempeld als ranzig (en terecht), niet de taal op zich.


Aan iCe01: Je doet te moeilijk, en je doet het waarschijnlijk ook niet om de juiste reden. Je wil een techniek gebruiken omdat het 'hip' is, en misschien niet omdat je er ook echt een nut voor hebt?
Ik bedoel, het klinkt leuk hoor, xml, xsl, ajax, xslt én DOM voor 1 pagina, en ik weet natuurlijk niet in wat voor organisatie je zit en uit hoeveel sources je gegevens vandaan komen. Maar als je bijv. alleen een mysql db hebt draaien, heb je het dan ook nodig? Kan dat niet gewoon simpeler? En belangrijker, als jij morgen onder een tram komt, snapt je opvolger dan nog hoe het in elkaar steekt?

[ Voor 6% gewijzigd door SchizoDuckie op 31-10-2005 17:06 ]

Stop uploading passwords to Github!


  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 23-04 21:46

LauPro

Prof Mierenneuke®

SchizoDuckie schreef op maandag 31 oktober 2005 @ 17:04:
Wie heeft gezegd dat javascript uit den boze was? (quotes?) Wie heeft gezegd dat een javascriptloze site netter was? (quotes?)
O.a. het W3C heeft diverse adviezen uitgebracht aangaande Javascript bij formulierafhandeling. Voor zover ik weet is de doelstelling dat je ervoor zorgen dat Javascript nooit een vereiste is om een formulier in te kunnen vullen. De vraag is dus in hoeverre AJAX impact heeft op het formulier voor Javascriptloze browsers of mensen die het uit hebben staan. Ik heb implementaties gezien waarbij het formulier op zich ook vanuit Javascript wordt opgebouwd. Dat zijn natuurlijk niet al de beste constructies.
Het probleem was, dat mensen alleen maar ranzige 'sneeuw' scriptjes, en nutteloze 15-seconden-durende, 150kb-vretende page transitions inbouwden omdat veel mensen nog niet genoeg kennis hadden om zelf iets interessants en bruikbaars te bedenken. Dát soort dingen werd bestempeld als ranzig (en terecht), niet de taal op zich.
Ik denk dat je wel mag stellen dat alle toevoegingen van Javascript die in principe niet noodzakelijk zijn voor het gebruik van een forumlier 'ranzig' zijn. Dat kan zijn dat als je op formulier verstuurd en je nog een Javascript popup er achteraan krijgt. Of dat je tijdens het invullen van een veld te weinig tekens typt en je een bericht krijgt met een melding. Dit zijn dingen die veel beter 'onthefly' geregeld kunnen worden imo (zie bijv. wachtwoordsterke detectie bij Hotmail). Maar dit is eigenlijk een beetje een andere discussie. Toch ben ik van mening dat je altijd ervoor moet zorgen dat bijv. AJAX optioneel is, eventueel standaard ingeschakeld.

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


  • Yoozer
  • Registratie: Februari 2001
  • Laatst online: 20-01 22:02

Yoozer

minimoog

SchizoDuckie schreef op maandag 31 oktober 2005 @ 17:04:
Dit vind ik dus echt kant noch wal slaan...
offtopic:
raakt kant noch wal of slaat nergens op


Aan de TS (om deze reply nog enigszins nuttig te maken) - Alt+S om formulieren te saven? Ik zou ook eens kijken naar welke applicaties deze shortcut al gebruiken (en misschien proberen te af te vangen). IMHO heb je met zo'n sneltoets alleen voordeel als het een compacte form is.

teveel zooi, te weinig tijd


  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 22:43
Aan iCe01: Je doet te moeilijk, en je doet het waarschijnlijk ook niet om de juiste reden. Je wil een techniek gebruiken omdat het 'hip' is, en misschien niet omdat je er ook echt een nut voor hebt?
Ik bedoel, het klinkt leuk hoor, xml, xsl, ajax, xslt én DOM voor 1 pagina, en ik weet natuurlijk niet in wat voor organisatie je zit en uit hoeveel sources je gegevens vandaan komen. Maar als je bijv. alleen een mysql db hebt draaien, heb je het dan ook nodig? Kan dat niet gewoon simpeler? En belangrijker, als jij morgen onder een tram komt, snapt je opvolger dan nog hoe het in elkaar steekt?
Het werkt inmiddels al en was inderdaad veel makkelijker dan ik dacht. Over het gebruik van die zaken:

- XML is gewoon super handig als je je gegeven gestructureerd op meerdere plaatsen wilt gebruiken. Applicatie is OO geprogrammeerd en elke klasse bevat een "afdrukkenXML" functie die netjes de gegevens in mijn XML boom plaatst. Zo rolt eruit wat ik hebben wil in een gestructureerde overzichtelijke manier
- XSL is gewoon handig aangezien een kale XML output niet gebruiksvriendelijk is en je daar verder weinig mee kunt
- DOM: als je toch met XML bezigbent bespaar je jezelf een hoop moeite
- XSLT: XSL/XML parsen serverside levert altijd hetzelfde resultaat, terwijl de verschillen tussen IE en FF echt de spuigaten uitlopen, valt niet mee te werken als er een beetje ingewikkelde HTML tussen zit.
- Ajax is handig omdat mijn klanten niet snappen dat ze naar een andere pagina moeten om op te slaan. Ze zijn gewend met Word / Excel te werken en daar is CTRL+S genoeg en blijf je netjes in je overzicht. Behalve dat CTRL is vervangen door ALT is dat nu bij mijn applicatie hetzelfde... inclusief de melding "wijzigingen opslaan?" op het moment dat je de pagina verlaat zonder te saven... dat noemen ze nou gebruiksvriendelijkheid >:)

Overdreven? misschien
Hip? Absoluut
Handig en werkbesparend? zeer zeker!

Als ik bovenstaande zaken niet gebruikt had had ik VEEL meer moeten coden. En of je opvolger er dan nog iets van begrijpt is de vraag, dit zit duidelijk in elkaar en is goed gedocumenteerd. Moet dus absoluut geen probleem zijn!
Pagina: 1