Lektion 30. Funktioner i formularer

Forberedelse

  • Læs/genlæs kapitel 18 Databehandling i formularer
  • Læs kapitel 19. Videre med PHP

Formål

  • Arbejde med funktioner i formularer

Fælles gennemgang

Fra sidst

  • Repetition: Forklar ud fra nedenstående, hvad en funktion er for noget
Valuta omregner

– Forklar ud fra nedenstående, hvad en funktion er for noget

Valuta omregner
  • Hvorfor er funktioner så fantastiske
  • Hvilke krav kan vi stille til en funktion
  • Forklar forskellen på sekventiel og indeks-sekventiel kode ud fra figuren her
Indeks-sekventiel og sekventiel kode
  • Forklar, hvordan man laver en funktion med og uden returværdi i PHP
Funktion

Lektien til denne gang

  • Snak lidt om begreber som include(), AJAX, cookies i en god sags tjeneste og OOP

Øvelser

30.1 En lommeregner

  • Jeg har fundet noget kide til dig på https://www.phptpoint.com/multiple-submit-buttons-php-different-actions/, og jeg har kopieret koden over i en .txt fil til download. Kopier koden ind et .php dokument i VS Code
  • Sæt koden pænt op med indrykning o.lign. i VS Code. Ellers finde du aldrig hoved eller hale i koden 🙂
  • Prøv koden af. Hvad kan den
  • Lav en ekstra knap til division
  • Lav en ekstra knap, så at du kan lave kvadratroden af et tal. Tip: Kvadratrod hedder “squareroot” på engelsk, så prøv at søg på PHP squareroot
  • Skriv kode, så brugeren får en fejlmeddelelse, hvis indtastningsfeltet enten er tomt eller ikke er et tal

30.2 Prøv inquire() af

  • Meget enkelt øvelse:
    • Tag udgangspunkt i din lommeregner fra før
    • Du skal nu anbringe alt din PHP kode i en fil for sig
    • Få lommeregneren til at virke lige som før
    • Indsæt igen en knap til udregning af kvadratrod
    • Vovet: Sæt en knap ind, der kan udregne kvadratet, dvs. x2, f.eks. 3 x 3

Tip: Udkommenter din PHP kode i stedet for at slette den i den fil, du starter med. Så kan du vende tilbage, hvis noget går galt. I det hele taget: Hav “ulyst” til at slette kode, udkommatér i stedet for.

30.3 De små tabeller

Jeg har skrevet en kode, der kan vise fra 1-tabellen til og med 3-tabellen. Kopier koden ind i et PHP dokument. Når du undersøger koden: Sæt kommentarer ind i koden, så du har kommentarerne til en anden gang

  • Undersøg koden extract($_POST);. Det er en måde at modtage data fra formularen på, men hvad gør den helt præcist
  • Hvorfor er denne metode kun velegnet, når vi ingen indtastningsfelter har – eller ingen sikkerhedsrisici har
  • Hvordan ved koden, hvilken tabel, den skal vise. Der er jo pludselig 3 “submit” knapper
  • Hvordan gør koden for at lave tabellerne

Ændr i koden

  • Lav knapper og tilhørende kode, så alle tabeller til og med 10-tabellen

Funktioner

  • Vi har efterhånden ret meget kode, så lad os rationalisere det lidt. I stedet for 10 for-loops, så lav en funktion som bliver kaldt fra de enkelte knapper. Funktionen kan f.eks. hedde lav_tabel($tal);
  • Tip: Du er nødt til at sende et tal med til funktionen, men du behøves ikke at få noget retur. Funktionen skal bare kunne lave for-loopet

30.4 AJAX, cookies og OOP

  • Læs om AJAX i teorien og prøv at forklar kort, hvad det går ud på
  • Hvis du kan finde eksempler på AJAX, er det fantastisk
  • Hvordan kan vi kode en cookie (tag et skærmdump og forklar koden)
  • Hvad er OOP og hvad kan vi bruge det til

30.5 Cookies som vagthund

  • Indsæt nedenstående kode i 2 forskellige PHP filer. Filerne skal ligge i den samme mappe i din filstruktur, ellers kommer det ikke til at virke
  • Prøv dem af, men start med filen “formular-til-password”
  • Hvordan virker de. Skriv dine kommentarer inde i koden
  • Ændr koden, så du i stedet for Informatik som password bruger “AGFerBedst”, eller hvad du nu finder på
  • Ændr advarselsteksten i den pop-op besked, som du får
  • Hvorfor tror du, at jeg pludselig går over til javaScript
  • Ekstra: Lav siderne pæne med CSS