Ga naar inhoud

Include probleempje bij HTML i.c.m. PHP


Aanbevolen berichten

Als vervolg op mijn vraag van vorige week (wat overigens keurig netjes is opgelost hier, het volgende: Wederom een vraagje met betrekking tot HTML in combinatie met PHP Ik heb een PHP bestand dat een HTML pagina genereert, bovenaan in deze pagina heb ik een verwijzing staan naar een include file. Wanneer ik nu na het aanklikken van een knop een functie aanroep uit de include file krijg ik een melding "Fout in pagina". Wie vertelt mij wat ik fout doe ? Voor de duidelijkheid zal ik proberen het probleem enigzins simplistisch in code weer te geven: Hier de code van het hoofdbestand: [code:1:d080a6e0a8] <?php include_once("inctest.php"); echo("<INPUT type=\"button\" name=\"testen\" value=\"testknop\" onclick=\"testknop()\">"); ?> [/code:1:d080a6e0a8] Hier de code van het include bestand, genaamd inctest: [code:1:d080a6e0a8] <?PHP function testknop() { echo("<script>alert(\"U heeft de testknop aangeklikt.\")</script>"); } ?> [/code:1:d080a6e0a8] Uiteraard is de orginele code beduidend uitgebreider, er moet data opgeslagen en/of opgezocht worden in een database, maar het gaat mij in dit geval even om het principe, wat doe ik fout en hoe moet ik het dan wel doen. Overigens, wanneer ik de functie "testknop" in het hoofdbestand schrijf dan gaat het wel goed maar ik wil graag e.e.a. opsplitsen om een overzichtelijk geheel te houden. Alvast bedankt voor het meedenken. John PS Ik heb zelf het hele sterke vermoeden dat het alles te maken heeft met het feit dat ik probeer een in PHP geschreven functie aan te roepen vanuit HTML terwijl deze functie niet bekend is in HTML maar hoe maak ik het bestaan er van dan wel bekend bij HTML ? Het echoën van de include opdracht brengt ook geen oplossing maar dat heeft volgens mij alles te maken met het feit dat HTML de include opdracht niet kent.
Link naar reactie
Volgens mij snap je het principe niet helemaal... Eens kijken of ik het een beetje kan verhelderen. PHP is een server side taal, d.w.z. dat het op de server wordt uitgevoerd en vervolgens wordt het [b:391a78ef0b]resultaat[/b:391a78ef0b] naar de browser gestuurd. De eindgebruiker merkt dus feitelijk niets van PHP. Het enige dat de browser ziet is wat je genereert, meestal komt dit neer op [i:391a78ef0b]echo()[/i:391a78ef0b] of vergelijkbare functies. HTML is een structuurtaal. Het wordt gebruikt om de onderlinge relaties van een document vast te leggen. Kopjes, lijsten, paragrafen. Meer is het niet. JavaScript is een client side taal, d.w.z. dat het op de computer van de gebruiker wordt uitgevoerd. Hierdoor loop je gelijk tegen een aantal beperkingen op, zo kan een gebruiker JavaScript uitschakelen, maar dat even ter zijde. HTML "ziet" geen JavaScript en heeft er niets mee te maken. Andersom kan JavaScript wél HTML zien (ietwat simplistisch, maar het gaat om het idee). Als je zorgt dat het script correct is zal het werken, ongeacht de manier waarop het door de server naar de browser (client) wordt gestuurd. Ik hoop dat dit het een en ander verduidelijkt. Overigens lijkt het me dat er makkelijkere manieren zijn om jouw probleem op te lossen. Waarom zou je JavaScript door PHP laten includen in elke pagina? Plaats het script simpelweg in een apart bestand en link ernaar vanuit de header van een willekeurige pagina.[code:1:391a78ef0b]<script type="text/javascript" src="/pad/naar/bestand.js"></script>[/code:1:391a78ef0b]Misschien dat het een deel van je probleem oplost. Succes! ;) - Bas
Link naar reactie
Het is mij duidelijk dat PHP op de server uitgevoerd wordt en HTML een uitvoer is. Wat is nu de bedoeling ? Ik wil een site maken waar mensen zich dienen te registreren. Ik heb dus een HTML pagina waar de gegevens ingevoerd moeten worden en een knop of link "Registreer". Op het moment dat die knop aangeklikt wordt is het de bedoeling dat die gegevens (Op de server :-) ) in een database geplaatst worden en aangezien dat een procedure is die herhaaldelijk, en misschien vanaf verschillende lokaties op de site, uitgevoerd zal worden wil ik dat soort dingen graag in een PHP-functie plakken welke via een include bestand bereikbaar is. Mijn probleem zit hem er in dat ik even niet zie hoe ik die functies in die include bestanden kan bereiken. Het is dus niet zo dat ik bij het aanklikken van die knop even simpel een ander iets op het scherm wil tonen (zoals het laten weten dat de testknop bediend is), ik wil dat er een serieuse bewerking wordt uitgevoerd die volgens mij zelfs niet met HTML uitgevoerd KAN worden. Het gaat mij dus puur om het principe van hoe koppel ik die 2 nu aan elkaar en het tonen van het bedienen van die testknop is puur om te kijken of er ook gebeurd wat ik wil dat er gebeurd. Ik wil dat soort meldingen ook gebuiken om bij problemen te kijken of ik wel in de functie zit waar ik in wil komen en eventueel waar ik in de functie zit om te kijken of selectiecriteria (zoals if-then en case) wel goed zijn ingevoerd door mij.
Link naar reactie
Waar het dus op neer komt is dat je telkens data over en weer moet sturen. Bij het drukken op de knop zal je het formulier moeten versturen naar de server. Deze kan de gegevens verwerken en een resultaat terugsturen. In het kort: HTTP is een stateless protocol waarbij een [i:913c84aef3]request [/i:913c84aef3]een [i:913c84aef3]response [/i:913c84aef3]oplevert. De bezoeker doet een request (voor een pagina, of image, enz.), de server geeft deze terug aan de bezoeker. Na afloop van elke stap is er geen openstaande verbinding meer en weten beide partijen (client en server) niets meer van elkaar. Alhoewel dat laatste nog wel gedeeltelijk 'opgelost' kan worden met cookies op de client-side en sessions aan de server-side. Gegevens naar de server sturen kan via een GET (querystring) of een POST (formulier).
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...