Ajax Request

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Remote - Front-end Angular developer

Functie The IT team currently consists of the IT Manager, 2 back-end developers, 1 full-stack developer, 1 designer, and a DevOps engineer. They are currently looking for an experienced Front-end developer who will work autonomously and in a disciplined manner, being the only developer working on their Front-end applications at the start. They do have the ambition to find a second developer soon, who you will then be able to supervise. You will be working on the further development of their existing UI in Angular. But also developing a mobile app. They place great value on User Experience and opt

Bekijk vacature »

Software programmeur

Functieomschrijving Voor een erkende werkgever in de regio van Goes zijn wij op zoek naar een enthousiaste software programmeur met PHP/Symfony ervaring. Een gedreven persoon die het development team komt versterken met het aanpakken van complexe projecten. Ben jij op zoek naar een baan met veel uitdaging binnen een snelgroeiend e-commerce bedrijf, waar je de tijd en ruimte krijgt voor zowel professionele als persoonlijke groei? Lees dan snel verder! Dit ga je doen: Beheer en ontwikkeling van de serviceportal in Symfony en de webshops in de tweede versie van Magento; Testen en door ontwikkelen van software; Ontwikkelen van nieuwe functionaliteiten;

Bekijk vacature »

Lead C++ Developer

De rol van Lead C++ Developer Als Lead C++ developer bij KUBUS word je verantwoordelijk voor het implementatie design van requirements en de software architectuur van de desktop applicaties van BIMcollab, ons platform voor 3D model-validatie en issue-management bedoeld om de kwaliteit van 3D design-modellen voor gebouwen te verbeteren. Betere 3D modellen leiden tot betere gebouwen, dus zo draag je bij aan verduurzaming van de gebouwde omgeving met slimmer gebruik van materialen, minder verspilling en energie-efficiënte gebouwen. Een goede gebruikerservaring staat bij ons hoog in het vaandel; we gaan in onze ontwikkeling voor innovatie en kwaliteit. In je rol als

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Front-end developer (Vue.js) gezocht!

Functie Als Front-end developer is het jouw doel om efficiënte en effectieve frontend code te ontwerpen, ontwikkelen en onderhouden die goed aansluit bij de functionele behoefte vanuit de klant. Je zorgt voor optimale SEO-resultaten, sitespeed en frontend security. You build it, you run it, you own it! Je maakt deel uit van een DevOps Scrum team en werkt samen met back-end developers, test-engineers, interaction designers en een projectmanager. Er zijn verschillende groepen Scrum teams. Een roadmap team is jouw ‘’thuisbasis’’, daar wordt gewerkt aan doorontwikkeling van bestaande omgevingen voor een aantal klanten. Hiernaast zijn er projectteams waar nieuwe omgevingen worden

Bekijk vacature »

Senior/Lead Python developer

Functie Samen met je team, bestaande uit een senior, 2 mediors en één junior ontwikkelaar ga je op een Agile-gebaseerde aanpak werken aan hun software. Je hebt oog voor kwaliteit, risico’s en klantbelang. Communicatie met je collega’s en waar nodig ook met klanten speelt een belangrijke rol in het bereiken van een succesvol resultaat. Als persoon ben je slim, krijg je dingen voor elkaar en ga je resultaatgericht te werk. Binnen het development team is er veel zelfstandigheid, los van de stand-up (10:00 uur) en zo nu en dan pair-programming sessies. Technieken die zij gebruiken zijn o.a. Python, Django, MySQL,

Bekijk vacature »

C++ Ontwikkelaar

Functieomschrijving Ben jij toe aan een nieuwe uitdaging en werk je graag en goed in C++ en C#? Dan zijn we op zoek naar jou! Dit bedrijf is dé specialist op het gebied van automatiseringssoftware voor een specifieke branche en ze zijn per direct op zoek naar versterking in hun development team. Wat jij gaat doen binnen jouw rol als C++ ontwikkelaar; Je vertaalt de wensen van gebruikers naar een functioneel ontwerp. Je houdt je bezig met het ontwerpen, programmeren en testen van product aanpassingen. Je gaat nieuwe product releases implementeren in de projectteams. Je gaat de effecten van nieuwe

Bekijk vacature »

Back end developer Python, PHP

Functie Jij als full stack ontwikkelaar zult komen te werken samen met 1 PHP ontwikkelaar een PO en een flexibele schil aan ontwikkelaars . Samen ga je ervoor zorgen dat de huidige producten doorontwikkeld worden. De marketplace is geschreven in PHP Laravel en in de front end React. De roostersoftware is ontwikkeld in Python in combinatie met React in de front end. Jij zult voornamelijk (lees 75%) werken aan de roostersoftware. Momenteel ligt de uitdaging in het feit dat de roostersoftware breder schaalbaar moet worden zodat het voor meerdere flexwerkers ingezet kan worden. Verder willen ze financiële koppelingen gaan maken

Bekijk vacature »

C# .NET Backend Developer HBO Javascript

Samengevat: Deze werkgever is een professionele speler op gebied van IT en E-Commerce. Wil jij werken voor een e-commerce platform? Heb je ervaring met C#, Javascript en Scrum? Vaste baan: C# .NET Developer Backend E-Commerce 3.400 - 4.500 Backend Developer Wij ontwikkelen software voor E-Commerce toepassingen. Ons eigen Content Management systeem biedt een integrale oplossing met diverse ERP software. Onze systemen zijn vaak complex en omvangrijk en draaien bij grote organisaties. Maar ook kleine ondernemingen hebben steeds vaker behoefte aan een vlekkeloos werkende E-Commerce oplossing. Zij bieden een uitdagende werkomgeving met gezellige collega's. Je krijgt veel vrijheid en er is

Bekijk vacature »

Senior PHP developer

Functie Als Senior PHP developer heb je een sterke mening over de architectuur van projecten en de processen binnen het team. Je bent de sparringpartner voor je Team Lead. Ook ondersteun je met jouw kennis de minder ervaren developers in jouw team. Ze werken regelmatig aan projecten vanaf scratch en dit geeft ruimte om voor nieuwe technieken te kiezen. Naast het ontwikkelen van software ben je continue bezig om ook jezelf te ontwikkelen. Ze werken met o.a.: PHP, Laravel, Doctrine, PHP Unit, Behat, React, TypeScript, (My)SQL, Postgress, Redis, ElasticSearch, Docker, Nginx, GIT flow, JIRA, AWS. Eisen • HBO werk- en

Bekijk vacature »

T-SQL Database developer

Functie omschrijving Ben jij een ETL database specialist? Houd jij ervan om te puzzelen met Databases, Query's & Stored procedures? Zoek jij uitdaging, vrijheid en verantwoordelijkheid? Zoek dan niet verder! Wij zijn per direct op zoek naar medior en senior database developers. Je gaat werken voor een relatief klein softwarebedrijf in omgeving Tilburg. Samen met 12 collega's (allemaal techneuten), ga jij je bezig houden met het bouwen en/of onderhouden van database software. Deze software wordt internationaal ingezet voor het automatiseren van logistieke processen. Jouw werkzaamheden gaan er als volgt uit zien: Je bent in een klein team met developers, verantwoordelijk

Bekijk vacature »

Fasttrack learning & development voor Java dev

Wat je gaat doen: Wij zoeken enthousiaste en ambitieuze junior en medior ontwikkelaars die toe zijn aan de volgende stap in hun carrière. Wij helpen je op je pad naar senior ontwikkelaar door ons fasttrack learning en development programma. Na een kort en intensief programma ga jij aan de slag bij klanten van DPA. Daarnaast krijg je veel ruimte om je te ontwikkelen als persoon en als specialist. De eerste maand gaan we aan de slag om je certificeringen te behalen waaronder OCP (Oracle Certified Professional). Daarnaast nemen we een deepdive in Spring Boot. Ook laten we je kennismaken met

Bekijk vacature »

Java Developer

Java Developers opgelet! Bij Luminis zijn ze opzoek naar jou. Lees de vacature en solliciteer direct. Luminis is een software- en technologiebedrijf met meerdere vestigingen. Vanuit deze vestigingen werken 200 professionals aan technisch hoogwaardige oplossingen voor klanten zoals KLM, Nike en Bol.com. Ook ontwikkelt Luminis eigen oplossingen op het gebied van cloud, Internet of Things, data intelligence, e-sports en e-learning. Luminis onderscheidt zich door aantoonbaar voorop te lopen in technologie en innovatie. Luminis heeft drie kernpunten die verankerd zitten in alles wat we doen: het omarmen van nieuwe technologie, meesterschap en kennis delen. Functiebeschrijving First things first! Het is belangrijk

Bekijk vacature »

Oracle Apex Developer

Dit ga je doen Jouw taken bestaan uit: Het bouwen maatwerk Oracle applicaties voor Europese business units; Het implementeren van de nieuwste technieken om te blijven innoveren; Actief meedenken en aandragen van verbetervoorstellen. Hier ga je werken Deze organisatie in de regio Veenendaal is een van wereld grootste retailers met ruim 16.000 winkels in 27 markten en jaarlijks ruim 5,3 miljard klanten die winkelen bij een van hun welbekende retailmerken. Binnen de organisatie is er een IT Group actief die dient als IT Service Provider voor de hele organisatie en waar dagelijks IT'ers werken aan state-of-the-art IT oplossingen. Dit doen

Bekijk vacature »

SQL database developer

Functie omschrijving Voor een software bedrijf in omgeving Breda zijn wij op zoek naar een SQL database ontwikkelaar. Dit bedrijf bouwt applicaties om processen in distributiecentra te optimaliseren. Ter uitbreiding van het huidige team developers zijn wij op zoek naar een SQL database ontwikkelaar. De klanten van dit groeiende bedrijf zitten door heel Europa en jouw werkzaamheden zullen er als volgt uitzien: Het samenstellen van de software op basis van de input vanuit de klant (T-SQL & C#.NET). Het bezoeken van klanten om de processen en mogelijkheden in kaart te brengen. Het ontwerpen van databases met T-SQL als programmeer laag.

Bekijk vacature »
Lord Gaga

Lord Gaga

09/11/2012 23:43:30
Quote Anchor link
Hallo,

Bij het registreren wil ik graag dat er gelijk weer wordt gegeven of de gebruikersnaam al bestaat, of wanneer je gebruikersnaam characters bevat die niet zijn toegestaan.
Daarvoor heb ik het volgende, maar wanneer ik een gebruikersnaam intyp blijft het op 'Controleren' staan, ik heb bij de ajax request de error afhandeling toegevoegd en die gaf weer [Object object]

Hoe laat ik dit werken?

register.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
<?php
// Include Needed Files
include_once('includes/classes.inc.php');
include_once('includes/functions.inc.php');
include_once('includes/headers.inc.php');

// Set Page Settings
$page->setTitle('Home');

// Include Layout Head
include_once('content/head.con.php');
include_once('content/stylesheets.con.php');
include_style('select.css');
include_once('content/scripts.con.php');
include_script('select.js');
include_script('validation.js');

// Include Navigation
include_once('content/navigation.con.php');

$page->navigation('loggedOut');
$page->navigation('advertisments');

// Include Layout Body
include_once('content/body.con.php');

$page->textboxHead('Avickum', 'red');
$page->text('<form method="POST" novalidate="novalidate">');
$page->text('    <table id="register">');
$page->text('        <tr>');
$page->text('            <th>Gebruikersnaam</th>');
$page->text('            <td><input id="register-username" type="text" name="username" tabindex="1" placeholder="Gebruikersnaam"></td>');
$page->text('            <td><p id="register-username-error">Error afhandeling</p></td>');
$page->text('        </tr>');
$page->text('        <tr>');
$page->text('            <th>E-mail</th>');
$page->text('            <td><input id="register-email" type="email" name="email" tabindex="2" placeholder="E-mail"></td>');
$page->text('            <td><p id="register-email-error">Error afhandeling</p></td>');
$page->text('        </tr>');
$page->text('        <tr>');
$page->text('            <th>Geslacht</th>');
$page->text('            <td>');
$page->text('                <select id="register-gender" data-placeholder="Kies je geslacht" name="gender" tabindex="3">');
$page->text('                    <option value=""></option>');
$page->text('                    <option value="male">Jongen</option>');
$page->text('                    <option value="female">Meisje</option>');
$page->text('                </select>');
$page->text('            </td>');
$page->text('            <td><p id="register-gender-error">Error afhandeling</p></td>');
$page->text('        </tr>');
$page->text('        <tr>');
$page->text('            <th>Geboortedatum</th>');
$page->text('            <td>');
$page->text('                <select id="register-day" data-placeholder="Dag" name="day" tabindex="4">');
$page->text('                    <option value=""></option>');

for ($i = 1; $i < 32; $i++)
{

    $page->text('                    <option value="' . $i . '">' . $i . '</option>');
}


$page->text('                </select>');

$page->text('                <select id="register-month" data-placeholder="Maand" name="month" tabindex="5">');
$page->text('                    <option value=""></option>');
$page->text('                    <option value="1">Januari</option>');
$page->text('                    <option value="2">Februari</option>');
$page->text('                    <option value="3">Maart</option>');
$page->text('                    <option value="4">April</option>');
$page->text('                    <option value="5">Mei</option>');
$page->text('                    <option value="6">Juni</option>');
$page->text('                    <option value="7">Juli</option>');
$page->text('                    <option value="8">Augustus</option>');
$page->text('                    <option value="9">September</option>');
$page->text('                    <option value="10">Oktober</option>');
$page->text('                    <option value="11">November</option>');
$page->text('                    <option value="12">December</option>');
$page->text('                </select>');

$page->text('                <select id="register-year" data-placeholder="Jaar" name="year" tabindex="6">');
$page->text('                    <option value=""></option>');

for ($i = date('Y'); $i > 1899; $i--)
{

    $page->text('                    <option value="' . $i . '">' . $i . '</option>');
}


$page->text('                </select>');

$page->text('            </td>');
$page->text('            <td><p id="register-birthday-error">Error afhandeling</p></td>');
$page->text('        </tr>');
$page->text('        <tr>');
$page->text('            <th>Wachtwoord</th>');
$page->text('            <td><input id="register-password" type="password" name="password" tabindex="7" placeholder="Wachtwoord"></td>');
$page->text('            <td><p id="register-password-error">Error afhandeling</p></td>');
$page->text('        </tr>');
$page->text('        <tr>');
$page->text('            <th></th>');
$page->text('            <td><input id="register-password-check" type="password" name="password-check" tabindex="8" placeholder="Wachtwoord (Nogmaals)"></td>');
$page->text('        </tr>');
$page->text('        <tr>');
$page->text('            <th></th>');
$page->text('            <td><input id="register-submit" type="submit" name="register" tabindex="9" value="Registreren"></td>');
$page->text('        </tr>');
$page->text('    </table>');
$page->text('</form>');
$page->textboxFoot();

// Inlude Layout Foot
include_once('content/foot.con.php');
?>


/content/js/validation.js
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
jQuery(document).ready(function()
{
    var validateUsername = jQuery('#register-username-error');
        
    jQuery('#register-username').keyup(function()
    {
        var t = this;

        if (this.value != this.lastValue)
        {
            if (this.timer)
            {
                clearTimeout(this.timer);
            }
            
            validateUsername.html('Controleren...');

            this.timer = setTimeout(function()
            {
                jQuery.ajax(
                {
                    url: 'content/validate.con.php',
                    data: 'action=check_username&username=' + t.value,
                    dataType: 'json',
                    type: 'post',
                    success: function(j)
                    {
                        validateUsername.html(j.msg);
                    },
                });
            }, 200);
            
            this.lastValue = this.value;
        }
    });
});


/content/validate.con.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
function check_username($username)
{

    $username = trim($username);
    $response = array();
    
    if (!$username)
    {

        $response = array(
            'ok' => false,
            'msg' => 'Please specify a username'
        );
    }

    else if (!preg_match('/^[a-z0-9.-_]+$/', $username))
    {

        $response = array(
            'ok' => false,
            'msg' => 'Your username can only contain alphanumerics and period, dash and underscore (.-_)'
        );
    }

    else if (username_taken($username))
    {

        $response = array(
            'ok' => false,
            'msg' => 'The selected username is not available'
        );
    }

    else
    {
        $response = array(
            'ok' => true,
            'msg' => 'This username is free'
        );
    }

    
    return $response;        
}


if (@$_REQUEST['action'] == 'check_username' && isset($_SERVER['HTTP_X_REQUESTED_WITH']))
{

    echo json_encode(check_username($_REQUEST['username']));
    exit;
}

?>


Alvast bedankt!
 
PHP hulp

PHP hulp

25/11/2024 19:27:11
 
Kris Peeters

Kris Peeters

14/11/2012 13:11:53
Quote Anchor link
Mooi script. Dat is een goede manier om met keyup ism. Ajax te werken; met clearTimeout en setTimeout.
Ik zou die 200ms nog iets ruimer nemen, 3 of 400ms ( hoe wel ... de snelheid waarmee de jeugd tegenwoordig kan typen... :) )

Ik heb een aantal dingen aangepast.

De indentering is de stijl die ik het liefst heb, maar dat is een kwestie van smaak. Zie zelf maar.
Ik heb er iets Stand alone van gemaakt kwestie van het zo te kunnen testen. Uiteraard zal je dat terug uit mekaar moeten trekken.

Wat mij betreft werkt het.

Een aantal dingen:
- this.lastValue staat me niet zo aan. Het kan aan mij liggen, maar ik heb deze constructie nog niet gezien. Misschien vergis ik mij en is dit een goede manier om gegevens aan this toe te voegen.

- De data van het formulier - zeker met POST - geef ik liever mee in object-notatie ipv.
data: 'action=check_username&username=' + t.value,
Trouwens, ik escape de waarde eerst. Zeker met jouw notatie zou het fout kunnen lopen als er vreemde tekens worden meegestuurd
- $_REQUEST. Ik zie $_REQUEST niet graag. $_REQUEST is een merge van GET en POST-waarden. Nergens voor nodig. Als je weet dat het POST is, gebruik dan POST. dito met GET

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && isset($_POST['action']) && $_POST['action'] === 'check_username') {
  echo json_encode(check_username($_POST['username']));
  exit;
}
function
username_taken($a) {  // ik veronderstel dat dit bij jou vergeleken wordt met een waarde in de db...
  if (strtolower($a) === 'john') {
    return true;
  }

  return false;  
}

function
check_username($username) {
  $username = trim($username);
  $response = array();
  
  if (!$username) {
    $response = array(
      'ok' => false,
      'msg' => 'Please specify a username'
    );
  }

  else if (!preg_match('/^[a-z0-9.-_]+$/', $username)) {
    $response = array(
      'ok' => false,
      'msg' => 'Your username can only contain alphanumerics and period, dash and underscore (.-_)'
    );
  }

  else if (username_taken($username)) {
    $response = array(
      'ok' => false,
      'msg' => 'The selected username is not available'
    );
  }

  else {
    $response = array(
      'ok' => true,
      'msg' => 'This username is free'
    );
  }

  return $response;    
}

?>

<!DOCTYPE html>
<html>
  <head>
    <meta charset=utf-8>
  </head>
  <body>
    
    <input id="register-username" type="text" name="username" tabindex="1" placeholder="Gebruikersnaam">
    <p id="register-username-error">Error afhandeling</p>
    
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.js"></script>
    <script>
      jQuery(document).ready(function($) {
        var validateUsername = $('#register-username-error');
        var lastValue = '';
        
        $('#register-username').keyup(function() {
          var t = this;
          if (this.value != lastValue) {
            if (this.timer) {
              clearTimeout(this.timer);
            }
            validateUsername.html('Controleren...');
            this.timer = setTimeout(function() {
              $.ajax({
                url: window.location,  // ik doe dit nu om dit stand alone te testen ... alles op de zelfde pagina
                data: {
                  action: 'check_username',
                  username: escape($(t).val())
                }, // ik heb liever deze notatie.  Het laat ook meer ruimte voor extra manipulatie van de gegevens. Bv. escapen
                dataType: 'json',
                type: 'post',
                success: function(j) {
                  validateUsername.html(j.msg);
                },
              });
            }, 200);
            lastValue = this.value;
          }
        });
      });
    </script>
  </body>
</html>
Gewijzigd op 14/11/2012 13:47:13 door Kris Peeters
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.