• Login
  • Register
  • Zoek
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Filebase Entry
  • More Options

ICTscripters

Dé plek voor IT

Dé plek voor IT

Login

Geavanceerde opties
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Dé plek voor IT - ICTscripters
  2. Forum
  3. Scripting & programmeren
  4. Javascript + Ajax

Forum

  • Op zoek naar de legends

    Syntax 5 januari 2026 om 13:50
  • Na 15 jaar terug van weggeweest: iCriminals.nl is terug (BETA)!

    Syntax 4 januari 2026 om 10:58
  • Developer Gezocht

    K.Rens 30 december 2025 om 12:32
  • [FREE] WeFact Hosting module

    Jeroen.G 13 oktober 2025 om 14:09
  • Help testers nodig voor android app Urgent

    urgentotservices 26 september 2025 om 10:21
  • Versio vervanger

    Jeroen.G 25 augustus 2025 om 15:56
  • Afspraken systeem met planbeperking

    Lijno 1 augustus 2025 om 23:04
  • Partner Gezocht om meerdere NFT Collecties op Open Sea te Plaatsen

    NFT Art Designer 1 maart 2025 om 14:08

Marktplaats

  • 321 Nieuwe Domeinnamen December 2025

    shiga 1 januari 2026 om 10:26
  • Meerdere mafia game template te koop

    Syntax 28 december 2025 om 21:20
  • Van een pixelige afbeelding naar een strakke, moderne website

    Syntax 21 december 2025 om 17:05

Formulier submit zonder pagina refresh

  • WHMCSAddons
  • 24 september 2012 om 22:53
  • WHMCSAddons
    Master
    Ontvangen Reacties
    88
    Berichten
    2.411
    • 24 september 2012 om 22:53
    • #1

    Hi,

    Ik ben voor een opdracht bezig een formulier te bouwen, echter is de gehele website in een index gebouwd (HTML5).
    Nu wil ik bij een submit een PHP code uitvoeren maar zonder dat de hele pagina weer een refresh geeft en dus direct resultaat laat zien.

    Ik ben totaal een n00b op JavaScript en jQuery, dus zoek ik hiervoor hulp, heeft iemand enig idee hoe ik dit kan oplossen ?

    Gr.

  • Stefan.J
    Master
    Ontvangen Reacties
    9
    Berichten
    2.358
    • 24 september 2012 om 23:09
    • #2
    Citaat van Wmdiensten

    echter is de gehele website in een index gebouwd (HTML5)

    Hiermee bedoel je een one-page-app?

    Wat ik je kan zeggen dat je dit met Ajax moet oplossen wat heel goed kan met jQuery. Wil je meer hulp zal wat code wel handig zijn.

    http://api.jquery.com/jQuery.post/

  • Tim
    Enlightened
    Ontvangen Reacties
    77
    Berichten
    3.686
    • 24 september 2012 om 23:13
    • #3

    Kijk naar het voorbeeld bij de uitleg van de ajax functie van jqueryv;)

    Master student IT-recht en Master student Ondernemingsrecht & software ingenieur
    My Personal profile
    My professional profile (LinkedIn/CV)

  • WHMCSAddons
    Master
    Ontvangen Reacties
    88
    Berichten
    2.411
    • 24 september 2012 om 23:14
    • #4

    Stefan.J
    Het gaat inderdaad om een one-page-app, echter is de website een 18+ content en deze kan ik dus niet plaatsen sorry.

    Is dit niet mogelijk met een klein stukje code dat PHP de rest uitvoert maar niet de hele pagina in een refresh gooit ?

  • ismail123
    Advanced programmer.
    Ontvangen Reacties
    20
    Berichten
    678
    • 24 september 2012 om 23:33
    • #5
    Citaat van Wmdiensten

    Stefan.J
    Het gaat inderdaad om een one-page-app, echter is de website een 18+ content en deze kan ik dus niet plaatsen sorry.

    Is dit niet mogelijk met een klein stukje code dat PHP de rest uitvoert maar niet de hele pagina in een refresh gooit ?

    Dat heeft niks met PHP te maken fils, luister naar wat BrokenTrack gezegd heeft. Het is puur ajax functies.

    Met vriendelijke groet,
    Ismail
    enthousiaste game developer

  • WHMCSAddons
    Master
    Ontvangen Reacties
    88
    Berichten
    2.411
    • 24 september 2012 om 23:35
    • #6

    ismail123
    Ik lees wat hij zegt alleen vraag ik door, is dat een misdaad? wil gewoon wat duidelijkheid hebben voor ik weer verder ga.


    Maar sluit het onderwerp maar ga wel naar Stackoverflow forum.

  • ismail123
    Advanced programmer.
    Ontvangen Reacties
    20
    Berichten
    678
    • 24 september 2012 om 23:41
    • #7

    @Fils,

    Speciaal voor jou een voorbeeld:
    Online: http://jsfiddle.net/vDN2j/

    JS/Jquery code:

    Code
    $("#submit_form").click(function(event){
    		//validate process
    		var submitnaam = $("input#naam").val();
    		var submiturl = $("input#url").val();
    		var submitemail = $("input#email").val();
    		var submitonderwerp = $("input#onderwerp").val();
    		var submitcontent = $("textarea#content").val();
    		
    		var valid = true;
    		//validate realistic length
    		
    		if(submitnaam.length < 3)
    		{
    			$('div.naam_error').html('Name is too short.');
    			valid = false;
    		}
    		else
    		{
    			$('div.naam_error').html('<br>');
    		}
    		
    		if(submiturl.length < 5)
    		{
    			$('div.url_error').html('URL is too short.');
    			valid = false;
    		}
    		else
    		{
    			$('div.url_error').html('<br>');
    		}
    		
    		if(submitemail.length < 8)
    		{
    			$('div.email_error').html('Email is too short.');
    			valid = false;
    		}
    		else
    		{
    			$('div.email_error').html('<br>');
    		}
    		
    		if(submitonderwerp.length < 3)
    		{
    			$('div.onderwerp_error').html('Subject is too short.');
    			valid = false;
    		}
    		else
    		{
    			$('div.onderwerp_error').html('<br>');
    		}
    		
    		if(submitcontent.length < 3)
    		{
    			$('div.content_error').html('Content is too short.');
    			valid = false;
    		}
    		else
    		{
    			$('div.content_error').html('<br>');
    		}
    		if(valid)
    		{
    			//submit form
    			var datastring = 'name='+ submitnaam + '&url=' + submiturl + '&email=' + submitemail + '&onderwerp=' + submitonderwerp + '&content=' + submitcontent;
    			$.ajax({
    				type: "POST",
    				url: "submit.php",
    				data: datastring,
    				success: function() { 
    				setTimeout(function(){$("div#succes").show();},1000);
    				$("form.formulier").hide("slow");
    				}
    			});
    		}
    		return false;
    	});
    Toon Meer


    HTML Code:

    Code
    <form class="formulier" method="post" action="#">
    				<input type="text" maxlength="20" name="naam" id="naam">
    				<label for="naam">Naam</label><br>
    				<div class="naam_error"><br></div><br>
    				<input type="url" maxlength="50" name="url" id="url">
    				<label for="url">URL</label><br>
    				<div class="url_error"><br></div><br>
    				<input type="email" maxlength="50" name="email" id="email">
    				<label for="email">Email</label><br>
    				<div class="email_error"><br></div><br>
    				<input type="text" maxlength="50" name="onderwerp" id="onderwerp">
    				<label for="onderwerp">Onderwerp</label><br>
    				<div class="onderwerp_error"><br></div><br>
    				<textarea name="content" id="content" rows="18" cols="50">
    Geachte Meneer/mevrouw,
    
    
    Dit is een test
    
    
    Ik hoop snel van jullie terug te horen!
    
    
    Met vriendelijke groeten,
    
    
    test
    				</textarea><br>
    				<div class="content_error"><br></div><br>
    				<input type="submit" value="verzenden" id="submit_form">
    	
    			</form>
    Toon Meer


    Alsjeblieft :)

    Hij wordt gestuurd naar submit.php zoals je in de javascript ziet.

    Met vriendelijke groet,
    Ismail
    enthousiaste game developer

  • WHMCSAddons
    Master
    Ontvangen Reacties
    88
    Berichten
    2.411
    • 24 september 2012 om 23:47
    • #8

    Bedankt, maar ik hou niet van voorkauw werk, begrijp het liever dan dat ik over 2 weken opnieuw dezelfde vraag krijg.
    Vandaar dat ik ook in het topic vermeld heb dat ik een n00b ben op JavaScript & jQuery.

  • jopitan
    Professional
    Berichten
    684
    • 24 september 2012 om 23:59
    • #9

    Wat jij zoekt is een combinatie van Jquery, Ajax en PHP.

    Met jquery vang je de submit op. Dus dat zou bijvoorbeeld

    Code
    $("body").on("submit", "#idattribuutvanformelement", function() {
    
    
    }

    Om de refresh te cancelen die hij normaal doet. Plaats je return false in de submit.

    Code
    $("body").on("submit", "#idattribuutvanformelement", function() {
    return false;
    }

    Dan daarin bouw je een ajax request. In combinatie zal dat iets zijn als:

    Code
    $("body").on("submit", "#idattribuutvanformelement", function() {
    $elements = $(this).serialize(); //Input velden enzovoort omzetten naar een string
    $.ajax({type: 'POST',url: 'mijnvalidatie.php',
    data: $elements,dataType: 'json',success: function(xhr) {//doe hier wat je wilt doen}});
    return false;
    }

    Zo heb ik je een beetje op weg geholpen. De rest moet je natuurlijk zien te regelen ;)

    Offtopic
    Bij het aanpassen van een bericht worden de enters ook uit de code gescoopt.

    Kast: HAF922 | CPU: I7-930 @ 4.0GHz | CPU Cooler: Noctua NH-D14 | HDD0: Crucial M4 128GB, HDD1: Kingston SSD 64GB, HDD2/3: WD Black & Green 1TB, HDD4: Seagate 1.5TB | Mem: Kingston HyperX 12GB @ 1600MHz | Graphics: Crossfire HD6970 | Res: 5760x1080

  • WHMCSAddons
    Master
    Ontvangen Reacties
    88
    Berichten
    2.411
    • 25 september 2012 om 08:31
    • #10

    jopitan
    Thanks ik begin hem wel aardig te begrijpen, zal vanavond eens kijken wat ik eruit kan krijgen.

  • L.Groot
    Elite members
    Ontvangen Reacties
    31
    Berichten
    4.888
    • 26 september 2012 om 17:10
    • #11

    Deze gebruik ik altijd (die van Jopitan kan ook maar is meer schrijfwerk en geloof ik meer gericht op oudere jQuery versies):

    Code
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
    <script type="text/javascript">
    	$(function(){
    		$("#submit").click(function(){
    			$.ajax({
    				url: 'http://website.nl/script.php', 
    				type: "POST",
    				data: "titel="+$("#titel").val()+"&naam="+$("#naam").val(), 
    				success: function(data){
    					alert("Uitgevoerd");
    				}
    			});
    		});
    	});
    </script>
    
    
    <b>Titel:</b><br />
    <input type="text" id="titel" name="titel" /><br />
    <b>Naam:</b><br />
    <input type="text" id="naam" name="naam" /><br />
    <br />
    <input type="submit" name="submit" id="submit" value="Versturen" />
    Toon Meer

    Meer informatie:
    http://api.jquery.com/jQuery.ajax/

    Veel succes nog en als je een vraag hebt dan kan je die altijd aan me stellen :). Ik heb inmiddels 2 jaar jQuery ervaring en ik denk dat ik wel boven gemiddeld zit hier ;).

  • jopitan
    Professional
    Berichten
    684
    • 26 september 2012 om 19:58
    • #12

    Mijn code is juist efficiënter in vergelijken met jouw code L. Groot en het is juist de nieuwste methode ('on' is een vervanging van 'live').

    Wat jij hier doet:

    Code
    data: "titel="+$("#titel").val()+"&naam="+$("#naam").val(),

    gebeurt bij mij hier:

    Code
    $elements = $(this).serialize();

    Wat bij jou zou moeten gebeuren, als je een veld toevoegt aan een form, is elke keer je javascript code aanpassen. Wat bij mijn code niet hoeft.
    $(this).serialize() zorgt automatisch voor het maken van een string van alle elements.

    Bijvoorbeeld jij hebt het volgende formulier:

    Code
    <form>
    Voornaam <input name="voornaam" />
    Achternaam <input name="achternaam" />
    </form>

    Dan zou jouw code er zo uit moeten zien:

    Code
    data: "voornaam=" + $("input[name=voornaam]").val() + "&achternaam=" + $("input[name=achternaam]").val(),

    Terwijl bij mij zou het altijd het volgende zijn:

    Code
    $elements = $(this).serialize(); (buiten ajax)
    data: $elements, (in de ajax call)

    Als jij nu een extra element zou toevoegen aan het formulier met de naam email is jouw code als volgt:

    Code
    data: "voornaam=" + $("input[name=voornaam]").val() + "&achternaam=" + $("input[name=achternaam]").val() + '&email=' + $("input[name=email]").val() ,

    Terwijl bij mij zou het altijd het volgende zijn:

    Code
    $elements = $(this).serialize(); (buiten ajax)
    data: $elements, (in de ajax call)

    Mijn code blijft daarnaast ook nog werken als je bijvoorbeeld een formulier via een ajax request ophaalt. En mijn code kan efficient worden gebruikt voor meerdere formulieren op dezelfde pagina, zonder extra javascript toe te voegen ;)

    Ik zal hier straks even een voorbeeld onder plakken. Moet even de hond uitlaten.

    Code
    <script type="text/javascript">
    	$(function() {
    		$("body").on("submit", ".ajaxForm", function() {
    			$this = $(this);
    			$elements = "formaction=" + $this.attr('rel') + "&" + $this.serialize();
    			$.ajax({
    				type: $this.attr('method'),
    				url: '/myAjaxCall.php',
    				data: $elements,
    				dataType: 'json',
    				success: function(xhr) {
    				
    				}
    			});
    			return false;
    		});
    	});
    </script>
    
    
    <form method="POST" rel="saveCustomer" class="ajaxForm">	
    	<p>
    		<label>Voornaam:</label><br />
    		<input type="text" name="voornaam" value="" />
    	</p>
    	<p>
    		<label>Achternaam:</label><br />
    		<input type="text" name="achternaam" value="" />
    	</p>
    	<p>
    		<input type="submit" name="submit" value="Opslaan" />
    	</p>
    </form>
    
    
    <form method="POST" rel="createUser" class="ajaxForm">	
    	<p>
    		<label>Voornaam:</label><br />
    		<input type="text" name="voornaam" value="" />
    	</p>
    	<p>
    		<label>Achternaam:</label><br />
    		<input type="text" name="achternaam" value="" />
    	</p>
    	<p>
    		<label>Email:</label><br />
    		<input type="text" name="email" value="" />
    	</p>
    	<p>
    		<label>Geslacht:</label><br />
    		<select name="geslacht">
    			<option value="0">Van alles een beetje</option>
    			<option value="1">Man</option>
    			<option value="2">Vrouw</option>
    		</select>
    	</p>
    	<p>
    		<input type="submit" name="submit" value="Opslaan" />
    	</p>
    </form>
    Toon Meer

    Voor alles kan hetzelfde stukje javascript worden gebruikt.

    Kast: HAF922 | CPU: I7-930 @ 4.0GHz | CPU Cooler: Noctua NH-D14 | HDD0: Crucial M4 128GB, HDD1: Kingston SSD 64GB, HDD2/3: WD Black & Green 1TB, HDD4: Seagate 1.5TB | Mem: Kingston HyperX 12GB @ 1600MHz | Graphics: Crossfire HD6970 | Res: 5760x1080

    Bewerkt één keer, laatst door jopitan (26 september 2012 om 20:11).

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!

Maak een account aan Login

ICT Nieuws

  • Fijne feestdagen

    tcbhome 28 december 2025 om 13:55
  • Kritieke update voor Really Simple Security-plug-in

    K.Rens 16 november 2024 om 16:12
  • ING Nederland streeft naar ondersteuning van Google Pay tegen eind februari

    K.Rens 2 november 2024 om 16:09

Blogs

  • Functioneel ontwerp

    Dees 28 december 2014 om 12:38
  • Access Control List implementatie in PHP/MySQL - deel 1/2

    FangorN 28 december 2018 om 12:35
  • Access Control List implementatie in PHP/MySQL - deel 2/2

    FangorN 29 december 2018 om 12:37

Gebruikers die dit topic bekijken

  • 1 Gasten
  1. Marktplaats
  2. Design
  3. Voorwaarden
  4. Ons team
  5. Leden
  6. Geschiedenis
  7. Regels
  8. Links
  9. Privacy Policy
ICTscripters ©2005 - 2026 , goedkope hosting door DiMoWeb.com, BE0558.915.582
Sponsors: Beste kattenhotel provincie Antwerpen | Beste Zetes eid kaartlezer webshop
Style: Nexus by cls-design
Stylename
Nexus
Manufacturer
cls-design
Licence
Commercial styles
Help
Supportforum
Visit cls-design