Undrar lite kort om det går att ha PHP-kod inuti en echo? Har nämligen en sida med en if-sats som skriver ut ett helt formulär genom en echo, och då formuläret innehåller en del PHP-kod så måste jag hitta något sätt att få med den när formuläret skrivs ut.
Tack för svaret! :) Testade heredoc syntax och det fungerade rätt bra, förrutom att if-satser och liknande inte fungerade. Går det att få såna här satser att fungera om man lägger dem i strängen, eller bör man välja en annan lösning?
Fungerar inte heller riktigt som jag tänkt. Har bland annat en foreach-sats i strängen, och på det stället skriver funktionen ut själva koden istället för att läsa den som PHP. Vet inte om jag har gjort något fel?
Tack för svaret! :) Testade heredoc syntax och det fungerade rätt bra, förrutom att if-satser och liknande inte fungerade. Går det att få såna här satser att fungera om man lägger dem i strängen, eller bör man välja en annan lösning?
Heredoc kan användas för att skriva ut långa stycken av HTML/JS-kod mm som alltså är "stränginfo" i PHP. Och då slipper man strula med "escapade" fnuttar. En enkel variabel kan klämmas in och evalueras då. Men allt som är mer komplicerat än så (inklusive array-variabler) måste först evalueras och göras om till en sträng innan heredoc-startar.
Vet inte om jag har förstått det här rätt, men fungerar det så att endast HTML-koden skrivs ut medan PHP-koden körs direkt i funktionen?
Frågan är nu hur jag får in det här i resten av formuläret? Ska jag kanske lägga hela formuläret i en sträng som tidigare och sedan skriva ut createSelect() på det ställe där jag vill att menyn ska visas?
Idén ä alltså att man har små funktioner som skapar elementen som och som inte själv skriver ut nåt men returnerar strängen som du sedan kan baka in där du vill. T ex så lagrar jag all genererad text i en array som sedan ges till funktionen createForm() och som själv generarar ett komplett form-element som sedan kan skrivas ut.
Kan även tillägga att de brukar vara effektivare att skriva ut allt på en gång, än att hela tiden anropa echo eller print().
Okej, då förstår jag nog lite bättre. Tycker dock att den här lösningen verkar lite omständig? Finns det inget lättare sätt att få ett formulär att skrivas ut om ett visst påstående är sant? Kanske borde jag lägga formuläret i en separat fil och köra en include om påståendet är sant?
Jag tycker att du i dina if-satser antingen kallar på en funktion som returnerar strängen eller så kör du med en include.
Välj det som du tycker känns mest bekvämt.
Jo precis, tack för hjälpen! :)
Gick tillbaka till förslaget som nitro2k01 gav och kom fram till att det verkar fungera bra. Tänkte att jag skulle ta bort lite kod så att endast alternativen och inte själva menyn skrivs ut, eftersom den koden egentligen inte behöver finnas med i strängen. Det vill dock inte fungera, får bara fram ett enda alternativ i menyn. Någon som vet om jag har gjort något fel?