Ben bezig met een contact formulier. Het verzenden van de email en de ajax werkt.
Nu wil ik dat boven het contact formulier als het succesvol is verzoden een soort van popup verschijnt.
Zelf heb ik dit geporbeerd:
Maar als je .php rewrite naar .html wordt je PHP-code toch niet meer uitgevoerd?
Toevoeging op 01/05/2014 16:16:58:
Overigens hou ik er zelf niet van om extensies .php en .html te mixen. Ook wanneer ik pure HTML zou hebben gooi ik dat in een .php-bestand. Wat dat betreft is er dus qua belasting geen verschil wanneer alle .html-bestanden ook door de PHP-handler gaan.
Een ander punt van alle .html als PHP verwerken is ook dat je niet meteen weggeeft dat je PHP gebruikt om je site te genereren.
Licht het nou aan mij of ben ik gek, een echo omleiden?
In PHP is een echo functie een functie om iets te schrijven, bijvoorbeeld echo 'kaas'; weergeeft kaas.
In html kan je net zo goed plain kaas geven ;) Waarom zou je moeiten doen om een echo in html te maken.
Als ik het allemaal zo eens lees maak je het nodeloos ingewikkeld. Er bestaat iets als 'goede gebruiken' in de wereld van programmeren.
Laten we bij het begin beginnen.
- bestanden waar php code in voorkomt geef je ten aller tijde de extensie .php. (ongeacht wat er wel of niet mogelijk is)
- als je een php bestand maakt met een contactformulier - laten we zeggen contact.php - dan blijf je op die pagina totdat alles goed is ingevuld door de gebruiker. Dus je zorgt binnen deze pagina voor de validatie, de eventuele foutmeldingen en de html van het formulier. Ook zorg je op deze pagina dat het formulier per email verstuurd wordt en/of gegevens in de database worden opgeslagen.
Pas als dat allemaal gebeurd is geef je eventueel een redirect naar een andere pagina. De taak is dan immers volbracht. een redirect url kan ook zijn: 'send.php?status=success'. Aan de hand van die status kun je dan in send.php (mag ook send.html zijn) een popup of een alert tonen.
Moet al die code dan per se in één fysiek bestand staan?
Nee. Je kunt gebruik maken van functies of klassen die in andere bestanden staan. deze bestanden moet je dan als eerste met require_once '...'; includen.