Författare:
Per Stenebo
Skapad:
2012-02-23 21:31:06
Ändrad:
2017-04-16 12:59:37
sv

Ajax

Ta hjälp av ajax när du skapar appar i BendCMS!

Denna sidan förutsätter att du har kännedom om Ajax, annars har tex w3schools en utmärkt snabbkurs i PHP med Ajax.

Grundprocessen i Ajax skulle kunna beskrivas så här:

  1. En bit javaskript i ett element (tex en länk, knapp eller bild) anropar en javaskriptfunktion i sidans head-del.
  2. Javaskriptfunktionen skickar vidare anropet till en logikfil (skrivet i tex php) som behandlar datan.
  3. Logikfilen skickar tillbaka svaret till javaskriptfunktionen, antingen som en enkel sträng eller som XML.
  4. Javaskriptfunktionen skriver ut svaret på anvisad plats på sidan.

BendCMS är anpassat för AJAX-funktionalitet, en sida kan konfigureras för att enbart visa resultatet från logikfilen. 

Tillämpa Ajax i BendCMS

Exempel på hur man tar hjälp av dom inbyggda funktionerna i BendCMS för att skapa funktionalitet med Ajax.

Exemplet kör alla anrop genom ~/controller.php (som alla andra sidor i BendCMS), det gör att en hel del variabler och kontroller redan är klara när man kommer fram till den sidunika koden. Det sparar en hel del tid och arbete.

  1. Skapa en logikfil som skall processa ajax-anropet, placeras under mappen ~/pageLogic.
  2. Skapa en fil med javaskript som (senare) innehåller ajax-funktionen, placeras under ~/javascript med ändelsen .js
    Exempel: bendcms/javascript/getNewMenuorder.js
  3. Skapa en ny sida, observera följande inställningar i konfigurationen:
    • Logikfil: Välj den logikfil du skapade i punkt 1.
    • Javaskript: Välj den javaskriptfil som du skapade i punkt 2.
    • Sidmall: Välj mallen requestPageOnly.php
      Detta gör att inget annat än den sträng som man vill skicka tillbaka till ajax-funktionen skrivs ut.
    • Behörighet: Ange samma behörighetsnivåer som den sida som anropar denna sidan.
    • Sidstack: Ta bort alla id utom 0. Det är inte nödvändigt men det maximerar prestandan.
    • Meny: Välj None (ingen meny). Denna sidan skall ju bara anropas via ajax.
    • Redigering: Ingen redigering av innehåll.
  4. Spara sidan, notera adressen, den skall anges som mål i ajax-funktionens xmlhttp.open()-sats.
  5. Skapa javaskript som skall anropa ajax-funktionen.
  6. Gör klart ajax-funktionen i den inkluderade .js-filen.
  7. Testa.

Om javaskriptfunktionen skall få värden från php-variabler kan den normalt inte inkluderas som en separat .js-fil.
Då kan man skriva funktionen i en .php-fil placerad i mappen ~/head som inkluderas inom head-taggen.
Vilka typer av filer som skall köras genom php-motorn kan konfigureras i php.ini eller ibland i webbhotellets kontrollpanel.

När datan har processats av logikfilen skall resultatet skrivas ut med en eller flera echo-satser för återsändning till ajaxfunktionen.
Denna utskrift bör placeras i innehållsfilen (i mappen ~/pageContent) om man strikt skall följa tankarna i BendCMS, men ibland kan det vara enklare att göra det i slutet av logikfilen och lämna innehållsfilen tom.

Kommentarer till sidan Ajax