Beste,

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:


<?php if ( !$success ) echo "<script type="text/javascript\">".
        "alert('success');".
        "</script>";" ?>


Helaas geeft hij aan dat er iets mis gaat.
Is dit mogelijk wat ik wil doen?

Gr Yoeri
Michael - op 01/05/2014 15:40:23

Hoe denk je PHP te gebruiken in een .html bestand?

Nou, gewoon, dit opnemen in je .htaccess of httpd.conf:

<FilesMatch \.html$>
    SetHandler application/x-httpd-php
</FilesMatch>

Isse ziempel. ;-)
Een rewriterule was zinvoller geweest zodat je PHP niet onnodig belast.

RewriteEngine on
RewriteBase /
RewriteRule ^(.*)\.php$ $1.html
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.
Ik ben al geholpen als ik de echo kan omleiden :)
Dan maak ik een div aan en ben ik tevreden.
Willem vp op 01/05/2014 16:15:09

Maar als je .php rewrite naar .html wordt je PHP-code toch niet meer uitgevoerd?

Jawel hoor. het is geen redirect of iets dergelijks, gewoon een modificering van de URL.
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.
Yoeri,

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.

Reageren