Går det på något smart sätt anropa en funktion med samma namn som värdet onclick i php filen? Php-filen (controlern) är en class med olika events funktioner. I detta fall ska submit knappen anropa en funktion som heter reg. Eftersöker en funktionalitet liknande den som finns i asp.net
onclick-attributet kan du inte pilla på, eftersom det kräver att en motsvarande javascript-funktion finns deklarerad. ASP.NET löser detta genom att anropa en generell funktion för alla knappar o.dyl., som skickar med namnet på knappen som klickades och eventuella argument (genom 2 hidden-fält).
Tack :)
Hur fungerar detta om användaren har avaktiverat JavaScript?
Jo jag känner till Prado, jag postade en tråd om det för ett bra tag sedan. Tänkte dock bygga något eget.
Hur fungerar detta om användaren har avaktiverat JavaScript?
Inte alls (precis som i ASP.NET eller Prado), men det går ju ändå inte att få något intressant att hända med en input-button utan att ta hjälp av Javascript. Vill du komma någon vart utan javascript så får du leka med submit-knappar i stället, eftersom de skickar med sitt värde och namn om man klickar på dem.
Okej det är nog jag som snurrat till det, tack för hjälpen :)
Man kanske kan bestäma vilken funktion/event som ska triggas med hjälp av en submit-buttons namn...Skulle vilja ha en dynamisk lösning dvs om användaren trycker på knappen "subUser" trigga då ett event som anropar funktionen subUser().
Okej det är nog jag som snurrat till det, tack för hjälpen :)
Man kanske kan bestäma vilken funktion/event som ska triggas med hjälp av en submit-buttons namn...Skulle vilja ha en dynamisk lösning dvs om användaren trycker på knappen "subUser" trigga då ett event som anropar funktionen subUser().
PHP är ju serverside. Men du kan ju ha en form med flera olika submittknappar:
Om formen postas med POST kan du i actionsidan ha kod enligt:
if (isSet($_POST['knapp1'])) do_function_1();
elseif (isSet($_POST['knapp2'])) do_function_2();
elseif (isSet($_POST['knapp3'])) do_function_3();
else //om ingen knapp tryckts på...
Om get, använts så finns värdena i $_GET istället. Men dessa funktioner måste då vara PHP-funktioner. I gengäld funkar det utmärkt vare sig användarna har JS-stöd eller ej, eftersom allt sköts av servern.
Vet att det går i Perl men har inte behövt använda det i PHP, men det kan funka:
functionMapper($buttonName) {
${buttonName}();
}
Något liknande den ovanstående koden kanske funkar, har (som jag tidigare nämnt) bara använt det i Perl dock, aldrig behövt använda det i PHP. Tanken är att anropa en funktion som har namnet som ligger i variabeln, hela alltet använder sig av "variabelinterpolation" (eller vad det nu heter på svenska).