Algemene Ajax Functie?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software Developer Node.js

Hou jij van afwisseling? Ben je klaar met steeds hetzelfde doen? Constant bug fixen, onderhoud en dezelfde technieken? Zoek jij meer innovatie op technisch gebied? Wil jij op dit punt in je carrière breder ontwikkelen? Dit allemaal in-house, met een vast team van toppers? Dan ben je 100% geïnteresseerd in deze uitdaging. Lees dus snel verder! Functie & Team Business first, jij bent natuurlijk benieuwd wat je gaat doen. Een mooi kantoor pand met een strakke inrichting dat geloof je allemaal wel. Om gelijk met de deur in huis te vallen; je komt te werken in een informele en creatieve

Bekijk vacature »

Java Developer

Ben jij een Junior/medior Java developer uit de regio van Diemen met affiniteit voor data analyse en het bouwen van slimme systemen? Wil jij het liefst werken met slimme medewerkers om jou heen zoals Econometristen, Software Engineers en Data Analisten om nog meer te leren? Onze opdrachtgever is een zeer interessant bedrijf die E-business strategieën realiseert en optimaliseert. Hun software maakt grote datastromen gemakkelijk inzichtelijk en voorspelbaar voor hun eindklanten die zich over de hele wereld bevinden. Big Data en data-analyse is de core business. Dit bedrijf biedt jou veel kansen om mee te groeien met de organisatie en je

Bekijk vacature »

AngularJS Developer

Wat je gaat doen: Of beter nog, wat wil jij doen? Bij DPA GEOS werken onze consultants als Developer in Agile teams bij onze klanten en zijn ze verantwoordelijk voor de grotere webapplicaties. Wil jij dit ook, want we zijn op zoek naar enthousiaste Developers om ons development team te versterken. Je bent creatief en draagt met je enthousiasme positief bij aan de teamgeest binnen een projectteam. Je gaat webapplicaties maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande interesse in het applicatie landschap.

Bekijk vacature »

Senior developer PHP/ Laravel

Deze Digital Agency in Barendrecht specialiseert zich met name op klanten in de non-profit sector. Het concept, de code, het design en vervolgens de online marketing wordt volledig uit handen genomen door deze organisatie. Met ruim 15 man in dienst in een organisatie die al ruim 10 jaar bestaat kom je terecht in een omgeving waar zowel backend als frontend developers werken en wat marketeers. Opererend vanuit Barendrecht omgeving bedienen ze de gehele Nederlandse markt met een breed klanten bestand van goede doelen tot overheidsinstanties. De meeste applicaties worden wereldwijd gebruikt en hebben tienduizenden eindgebruikers. Een leuke bijkomstigheid aan deze

Bekijk vacature »

Junior PHP Developer

Organisatie Je komt te werken in het centrum van Eindhoven in een jong gepassioneerd team bestaande uit Backend ontwikkelaars een UX Designer en Web Developers. We zoeken iemand die aan het begin van zijn of haar carrière staat, die creatief is, oplossingsgericht en het leuk vindt om samen in een team van ervaren ontwikkelaars te werken. Stel je voor, maandag ochtend, je komt op kantoor aan. Eerst lekker even wat drinken en bijkletsen hoe dat jouw weekend en het weekend van jou collega’s is geweest. Rond de klok van 09:30 uur ga je samen met het team bespreken welke taken

Bekijk vacature »

Medior .NET Developer in een product gedreven orga

Ben jij een programmeur die inmiddels wel genoeg projecten heeft gedraaid? Heb jij het wel gezien om constant een nieuwe start te moeten starten? Om de zoveel maanden weer werken met andere technieken en geen diepgang te hebben in je werk? Wil jij je liever verdiepen in plaats van verbreden? En wil jij werken aan je eigen product, wat je in je eigen tempo en met je eigen team verder uit kan bouwen en perfectioneren? Dan ben je gegarandeerd geïnteresseerd in deze uitdaging. Lees vooral verder! Organisatie & Functie Deze organisatie is gevestigd in een industrieel gelegen pand in Den

Bekijk vacature »

Junior+/Medior developer

Bedrijfsinfo Het dynamische bedrijf in de regio Breda bestaat nu ruim 21 jaar heeft 45 mensen in dienst, waarvan 10 developers. Samen met het team ben je constant bezig met het ontwikkelen van maatwebsites en bijbehorende applicaties. Het kantoor dat gelegen is midden in een villa wijk, is verdeeld in verschillende ruimtes. Voor elke ruimte een andere ‘’tak van sport’’. De ontwikkelaars zitten bij elkaar net zoals de consultants. Doordat de directeur zelf ook developer is, ga je echt werken in een platte organisatie. Functieomschrijving Binnen de organisatie ga je aan de slag als PHP developer die zich gaat richten

Bekijk vacature »

Junior Software Developer

Voor een van onze Business Partners in de regio van Amstelveel zijn wij momenteel op zoek naar een Junior Software Developer. Deze organisatie is een van de grootste distribiteurs voor kantoor en bouwmaterialen. In totaal telt het bedrijf zo’n 50FTE waarvan 6FTE het team vormt dat verantwoordelijk is voor de IT tak. Het team bestaat uit 5 ontwikkelaars en een Lead Developer die dagelijks bezig zijn met het (door)ontwikkelen van de software dat met name intern gebruikt wordt. Deze organisatie bestaat inmiddels ruim 30 jaar en heeft ruim 180.000 verschillende artikelen in het assortiment. Een van de grote projecten waar

Bekijk vacature »

Medior Backend developer PHP Symfony

Organisatie 12 jaar geleden is deze organisatie ontstaan uit de vraag naar data in recruitment. Op dit moment zijn zij de Europese toonaangevende expert op het gebied van Smart Recruitment Marketing-producten en diensten. Met kantoren in Rotterdam, Amsterdam, Düsseldorf en Londen helpen zij bedrijven om beter te kunnen recruiten. De unieke data-gedreven aanpak is hun kracht. Met hun AI-gedreven platform bieden zij recruiters wereldwijd direct toegang tot de grootste portfolio van marketingkanalen om hun vacatures bij de juiste doelgroep te brengen. Met ruim 110 man in dienst, 20+ nationaliteiten en 500+ enterprise klanten behoren zij tot de absolute top! Functie

Bekijk vacature »

Back-end medior C# ASP.NET developer in regio Cuij

Organisatie Voor een van mijn business partners uit de regio van Cuijk ben ik op zoek naar een C# back-end developer. Het bedrijf bestaat 12 jaar en is begonnen als websitebouwer. Inmiddels maken ze namelijk naast websites en webshops ook ERP systemen, portals voor samenvoeging van verschillende systemen en een aantal eigen producten. Daarnaast focussen ze zich veel op internetmarketing. Voor zowel het MKB als de groot zakelijke markt leveren ze maatwerk software-oplossingen. Samen met hun andere vestiging in Oost-Europa bedienen ze één klantenbestand. Het is een informeel bedrijf, waar je veel vrijheid krijgt, maar tegelijkertijd wordt er ook heel

Bekijk vacature »

Medior Magento developer gezocht in een jong groei

Bedrijfsinfo Het bedrijf bestaat nu 3 jaar en zit gevestigd in hartje Breda. Het bedrijf is ontstaan toen 3 vrienden vanuit een eigen onderneming gefuseerd zijn. De sfeer binnen het bedrijf is informeel en iedereen denkt mee aan nieuwe oplossingen. Het bedrijf is gespecialiseerd op het gebied van E-commerce en online-marketing en werkt op het open-source platform Magento. Door aannemende aanvraag van projecten heeft het team van 6 developers een nieuwe teamplayer nodig. Doorgroeien staat vooraan in dit bedrijf, er is dan ook een mogelijkheid om trainingen te volgen binnen het bedrijf om je zelf te ontwikkelen voor je zelf

Bekijk vacature »

Frontend developer junior / medior

Organisatie Wat is het pad wat jij wil gaan bewandelen? Denk je er wel eens over na om voor een detacheerder te gaan werken maar ben je bang dat je een opdracht moet doen die je niet leuk vind? Lees dan even verder. Heb je ook wel eens het gevoel dat je een beetje blijft hangen in je ontwikkeling omdat je onvoldoende uitgedaagd wordt op jouw werk maar ben je niet het type wat iedere 2 jaar een overstap wil maken, dan is dit iets voor jou. Een van mijn partners in Amsterdam heeft recent haar deuren geopend. Het team

Bekijk vacature »

Senior Ontwikkelaar .NET

Organisatie Voor een van PHIND’s businesspartners ben ik opzoek naar een ervaren C# .NET Ontwikkelaar. Het draait om een grote creative agency, waar jij jezelf dagelijks bezig gaat houden met uitdagende .NET projecten. Het bedrijf focust zich op de webdevelopment voor grote klanten in de financiële wereld. Denk hierbij aan grote banken, verzekeraars en andere instellingen. Jij als Senior Ontwikkelaar gaat werken aan de websites en mobiele applicaties van deze bedrijven. De organisatie in kwestie heeft een aantal grote key-accounts die constant onderhoudt en optimalisatie nodig hebben met betrekking tot hun webapplicaties. Daarnaast zijn er ook andere klanten waar jij

Bekijk vacature »

PHP developer Midlance constructie

Jij hebt al een aantal jaren werkervaring in de PHP wereld en twijfelt over de stap naar freelance… Want hoe lekker is het als je in overleg met de eindgebruiker je tijden kan bepalen, je veel vrijheid hebt, bij alleen toonaangevende organisaties terecht komt en ook nog eens DIK betaald krijgt? Voor veel ontwikkelaars is dit toch net een stap te ver. Zij willen gewoon lekker code kloppen en zich niet bezig houden met het regelen van opdrachten, administratieve zaken of andere randzaken. Klinkt dit bekend? Wij bieden de middenweg! Wie zijn wij? Wij zijn niet het stereotype organisatie waar

Bekijk vacature »

Senior Rapid Custom Software Developers

Jouw rol Voor deze ‘leading edge’ technology practice zijn we op zoek naar Senior Rapid Custom Software Developers. Echte IT-freaks die de ontwikkelingen in het vakgebied nauwkeurig volgen en weten wat er speelt. Die kunnen werken op de grens van het onmogelijke en zo onze nationale en internationale klanten een beslissende voorsprong geven in hun markt. Je adviseert over innovatie en werkt mee aan de agile ontwikkeling en implementatie van state-of-the-art oplossingen, gebaseerd op .Net, Java en/of Mendix. Het gaat vaak om nieuwe technieken, veel eindgebruikers en complexe omgevingen, waarin de lat hoog ligt. Snelheid en topkwaliteit zijn bij deze

Bekijk vacature »
Inter Kode

Inter Kode

27/11/2015 15:46:40
Quote Anchor link
Hallo allemaal,

Het is een tijd geleden dat ik hier ben geweest en ik hoop dat jullie mijn kunnen helpen met de volgende vraag.
Mijn site gebruikt the jquery lib en ik maak vaak gebruik van ajax post's :
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
$.ajax({
  url      : 'files/ajax.php',
  type     : 'post',
  dataType : 'json',
  data     : {
    var1 : 'val1',
    var2 : 'val2',
    var3 : 'val3'
  },
  success: function (response) {
    // Do stuff
  },
  error: function (response) {
    // Do stuff
  }
});


Nu neemt dit veel ruimte in beslag omdat ik dit soort methods zeker wel over 200 keer gebruik.
Mijn vraag is wat de beste method is om een functie te maken voor dit soort acties ?

Voorbeeld :
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
function post(url, parameters) {
  $.ajax({
    url      : url,
    type     : 'post',
    dataType : 'json',
    data     : parameters,
    success: function (response) {
      return response;
    },
    error: function (response) {
      return response;
    }
  });
}

var data = { 'var1' : 'val1', 'var2' : 'val2', 'var3' : 'val3' };
if (post('files/ajax.php', data) == 'response') {
  // do stuff
}

Alvast bedankt!
Gewijzigd op 27/11/2015 15:48:02 door Inter Kode
 
PHP hulp

PHP hulp

23/04/2019 07:05:23
Honeypot
 
Thomas van den Heuvel

Thomas van den Heuvel

27/11/2015 16:35:11
Quote Anchor link
Ik denk dat dat op de hierboven voorstelde manier niet gaat werken. Een AJAX call is namelijk asynchroon als ik mij niet vergis (dit betekent kort door de bocht "wacht niet op antwoord"), daarom kun je in je callback geen waarde retourneren tenzij je op een of andere manier forceert dat er op het antwoord wordt gewacht, maar dat blokkeert dan je hele applicatie (wat je waarschijnlijk niet wilt). Als je het bovenstaande wilt laten werken zal je hele code "stack" asynchroon moeten zijn denk ik.

Wat je wel zou kunnen doen is je functionaliteit wat dynamischer maken zodat url en data instelbaar zijn (en niet hardcoded is) zodat je het als een "functie" (een herbruikbare eenheid code) kunt gebruiken, ik denk dat dit laatste jouw doel is, in plaats van die hele lap code elke keer opnieuw uitschrijven met een andere url / andere data? Dit heeft wel tot gevolg dat je de functionaliteit waarbinnen je de AJAX calls wilt gebruiken iets anders vorm zult moeten geven. Dit is een noodzakelijk compromis, want het alternatief is dus alle code asynchroon opzetten (of mogelijk zijn er nog andere manieren) maar dat is dus vrij bewerkelijk.

De eerste stap is het groeperen van functionaliteit in (JavaScript) objecten, hier kun je dan je AJAX calls in opnemen. Vergelijk dit met klassen en methoden in een object georienteerde aanpak.

Maar je zult ons wel een beetje op weg moeten helpen, zou je bijvoorbeeld een voorbeeld kunnen geven van welke dingen je doet met deze AJAX calls, dan kunnen we gaan nadenken hoe we deze in (herbruikbare) objecten kunnen gieten.

Ik heb een tijd terug een soort van autocomplete-functionaliteit gemaakt die gebruik maakt van AJAX calls om resultaten op te halen. Deze is gegoten in een object structuur dus ik kan meerdere objecten van deze "klasse" maken met een minimale hoeveelheid code:
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
<script type="text/javascript">
//<![CDATA[
$().ready(function() {
    var box = new autocompleteBox();
    box.init({
        'inputId':                  'inputtest',
        'boxId':                    'boxtest',
        'ajaxURL':                  '<?php echo $ajaxLink ?>',
        'ajaxQueryStringVariable':  'q' // try "z" (obviously will not return any results)
    });

    var box2 = new autocompleteBox();
    box2.init({'inputId': 'inputtest2', 'boxId': 'boxtest2', 'ajaxURL': '<?php echo $ajaxLink ?>'});
});
//]]>
</script>

Als je wilt kan ik hier (weer) een werkend voorbeeldje van maken, maar op dit moment is deze code een beetje achter geraakt op mijn andere code en is daardoor niet meer compatibel :).
Gewijzigd op 27/11/2015 16:37:49 door Thomas van den Heuvel
 
Peter Louwer

Peter Louwer

27/11/2015 16:40:51
Quote Anchor link
Volgens mij is dit niet mogelijk tenzij je een callback functie gebruikt.
Gewijzigd op 27/11/2015 16:41:14 door Peter Louwer
 
Inter Kode

Inter Kode

27/11/2015 16:41:39
Quote Anchor link
Bedankt voor je reactie, wat bedoel je met een callback?

Voorbeeld van een van mij post functies :

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
<?php // Jquery

$.ajax({
  url      : 'api/login',
  type     : 'post',
  dataType : 'json',
  data     : {
    email   : email,
    password: password,
    token   : token
  },
  success: function (response) {
    if(response.ret == 'success') {
      location.reload();
    }
else {
      alertMsg('#login_alert', 'danger', response.msg);
      disableBtn('.submit', false);
    }
  }
});


?>
Gewijzigd op 27/11/2015 16:41:54 door Inter Kode
 
Randy vsf

Randy vsf

27/11/2015 16:46:16
Quote Anchor link
Peter Massije op 27/11/2015 16:40:51:
Volgens mij is dit niet mogelijk tenzij je een callback functie gebruikt.


Is de succes function niet een callback function?

Ass je gegevens vanuit een ajax call wilt bewaren, kan je een interval zetten, die kijkt of de variable die je wilt gebruiken de gewenste waarde heeft om de zoveel tijd, zoja, clearInterval en dan ga je verder.
Gewijzigd op 27/11/2015 16:50:42 door Randy vsf
 
Peter Louwer

Peter Louwer

27/11/2015 16:47:41
Quote Anchor link
Niet getest, maar zoiets :
Probleem is dat deze functie altijd postCallback variable gebruikt, ben er nog niet helemaal uit...

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
<?php // Jquery

// Universal post function

function post(url, parameters) {
  $.ajax({
    url      : url,
    type     : 'post',
    dataType : 'json',
    data     : parameters,
    success  : postCallback,
    error    : postCallback
  });
}


// Launch function
post('files/ajax.php', 'username=jack&password=dummy');

// Catch the response
var postCallback = function (response) {
  console.log(response);
  // Do something with it
}

?>


Toevoeging op 27/11/2015 17:03:33:

Of je zet async uit :-)

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
<?php // Jquery

// Universal post function

function post(url, parameters) {
  var
response;
  $.ajax({
    url      : url,
    type     : 'post',
    dataType : 'json',
    async    : false,
    data     : parameters,
    success : function (data) {                            
      response = data;
    },

    error : function (data) {
      response = data;
    }
  });

  return response;
}


// Launch function
console.log(post('files/ajax.php', 'username=jack&password=dummy'));

?>
Gewijzigd op 27/11/2015 17:03:54 door Peter Louwer
 
Inter Kode

Inter Kode

27/11/2015 17:13:45
Quote Anchor link
Thanks, eind resultaat :

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
<?php // JS

// Function

function post(url, data) {
  var
response;
  $.ajax({
    url      : url,
    type     : 'post',
    dataType : 'json',
    async    : false,
    data     : data,
    success : function (data) {                            
      response = data;
    },

    error : function (data) {
      response = data;
    }
  });

  return response;
}


// Build parameters
var data = 'email=' + email + '&password=' + password + '&token=' + token;
// Store function response
var response = post('api/login', data);
// php will return : {"ret":"success","msg":"Successfully logged in."}
// Do stuff

if(response.ret == 'success') {
  location.reload();
}
else {
  alertMsg('#login_alert', 'danger', response.msg);
  disableBtn('.submit', false);
}


?>
 
Thomas van den Heuvel

Thomas van den Heuvel

27/11/2015 17:21:30
Quote Anchor link
Het bovenstaande voorbeeld (een loginfunctionaliteit via AJAX) is geschreven voor een specifiek doel en zal ook op een specifieke manier werken, hier maak je niet meerdere "instanties" van.

Verder kun je deze functionaliteit niet echt hergebruiken omdat je (op dit moment) in de globale scope werkt, het minste wat je zult moeten doen is de naam van de callback-functie instelbaar maken (hierbij zou je de naam kunnen prefixen met 'ajaxSuccessCallback' ofzo).

Het beste wat Inter Kode (op dit moment) kan doen is de variabele delen in zijn code identificeren en deze instelbaar maken via parameters van de universele (wrapper) functie.

EDIT: dit zou ik nog altijd verkiezen boven het uitzetten van async.
Gewijzigd op 27/11/2015 17:23:26 door Thomas van den Heuvel
 
Wouter J

Wouter J

27/11/2015 18:54:31
Quote Anchor link
Ik zou async inderdaad niet uitzetten. De oplossing is gegeven door jQuery zelf doordat `jQuery.ajax()` een jqXHR object retourneerd: http://api.jquery.com/jQuery.ajax/#jqXHR

Code (js)
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
function post(url, parameters) {
  return $.ajax({
    url      : url,
    type     : 'post',
    dataType : 'json',
    data     : parameters
  });
}


var data = { 'var1' : 'val1', 'var2' : 'val2', 'var3' : 'val3' };

post('files/ajax.php', data)
    .
done(function () {
        // ... success!
    })
    .
fail(function () {
        // ... error :(
    });


Overigens zie je dat de functie niet zo heel veel doet (eigenlijk alleen het instellen van JSON en POST). Je kan dit praktisch versimpelen door jQuery.post() te gebruiken:
Code (js)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
// ...
jQuery.post('files/ajax.php', data, function () {
    // ... success!
}, 'json');
Gewijzigd op 27/11/2015 18:54:45 door Wouter J
 
Inter Kode

Inter Kode

30/11/2015 09:21:35
Quote Anchor link
Na Wouter J reactie ben ik toch jquery post functie gaan gebruiken.
Bedankt voor de support, zie voorbeeld :

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
<?php // Jquery

var data = 'email=' + email + '&password=' + password + '&token=' + token;
$.post('api/login', data, function (response) {
    if(response.ret == 'success') {
      location.reload();
    }
else {
      alertMsg('#login_alert', 'danger', response.msg);
      disableBtn('.submit', false);
    }
},
'json').fail(function (response) {
    alertMsg('#login_alert', 'danger', 'Something went wrong!');
    disableBtn('.submit', false);
});


?>


Klein vraagje nog, wat voor advies geven jullie om de parameters door te geven?

var data = { 'var1' : 'val1', 'var2' : 'val2', 'var3' : 'val3' };
var data = 'email=' + email + '&password=' + password + '&token=' + token;
Gewijzigd op 30/11/2015 09:23:21 door Inter Kode
 
Randy vsf

Randy vsf

30/11/2015 09:34:41
Quote Anchor link
Ik zou de eerste gebruiken als je POST wil gebruiken.
Met de 2e bouw je een query string.
Dat werkt ook, maar dan kan je net zo goed een get versturen.
Gewijzigd op 30/11/2015 09:39:22 door Randy vsf
 



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.