Popup na submit
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:
Code (php)
Helaas geeft hij aan dat er iets mis gaat.
Is dit mogelijk wat ik wil doen?
Gr Yoeri
Trouwens... Is het echt nodig? Je kan toch ook een normale melding tonen?
Ikzelf heb altijd hekel aan alerts en popups.
Maak een div en style deze als een popup.
Gebruik enkele quotes bij echo en dubbele in de html.
dit is wat ik nu heb als code. Omdat de php in een andere directory word geladen gaat hij na een submit succes na de php file toe en is dat een witte pagina met de tekst"Bericht is succesvol verzonden".
wat ik is dat deze echo terug naar de juiste html pagina word doorgestuurd.(terwijl deze in een andere directory staat)
Maar, waarom een alert, dat is vervelend voor bezoekers.
Code (php)
Owh, en de style voor #success, moet zelf maakbaar zijn ;)
> wat ik is dat deze echo terug naar de juiste html pagina word doorgestuurd.(terwijl deze in een andere directory staat)
Je kunt gewoon de data die je van Ajax terug krijgt weergeven in een div. Als je op de pagina die je met ajax post die success melding weergeeft, krijg je die terug als data.
Code (php)
Gewijzigd op 01/05/2014 15:03:33 door - Pepijn -
Heb beide geprobeerd maar niet zoals ik verwacht.
Ik heb een html pagina die contact.html heet.
Deze staat in de directory'contactpage'
De ajax word opgeroepen door:
Code (php)
1
<script src="http://www.test.com/site/scripts/jslibs/ajaxcontactbox1.js" type="text/javascript"></script>
de php die word opgeroepen staat in de directory: root/site/scripts/php/send.php
zodra er op zend word gedrukt gaat hij naar de file send.php (omdat hier alles word aangestuurd)
nu wil ik dat echo's die ook in send.php staan op de contact.html worden weergegeven.
Hoe denk je PHP te gebruiken in een .html bestand?
Helemaal met je eens, wanneer php voorkomt gaat de voorkeur uit naar .php extentie. Je kunt uiteraard een iframe gebruiken en daar je php pagina inladen, maar nogmaals voorkeur gaat uit naar .php extentie dus ik zou zeggen renamen.
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:
Isse ziempel. ;-)
Gewijzigd op 01/05/2014 16:00:35 door Willem vp
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.
Gewijzigd op 01/05/2014 16:18:11 door Willem vp
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.
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.