Algemene Ajax Functie?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

DevOps EngineerDevOps Ontwikkelaar Azure AWS 3.700

Functieomschrijving DevOps Ontwikkelaar Azure AWS 3.700 - 5.300 Voor de vacature als DevOps Ontwikkelaar Vianen Azure AWS ga je het volgende doen: Ben jij slim genoeg om beheer van software en systemen te automatiseren en support-calls overbodig te maken? Heb je interesse in de nieuwste ontwikkelingen op het gebied van DevOps en wordt je onrustig als je dezelfde handeling 2x moet uitvoeren? Ben je snel in staat om tot de kern van een (technisch) probleem door te dringen en te weten hoe je die vervolgens kunt oplossen en voorkomen? Dan ben je waarschijnlijk op zoek naar de functie van DevOps

Bekijk vacature »

Full Stack Developer bij een bekend Nederlands bed

Functieomschrijving Ben jij een Full Stack Developer, heb jij ervaring met HTML, JavaScript en CSS én ligt jouw focus op front-end development? Dan is dit zeker de uitdaging voor jou! Jij zoekt oplossingen die ervoor zorgen dat de geleverde producten nog beter worden. ​​​​​​Jouw focus ligt als Full Stack Developer op de front-end omdat je dit net iets leuker vindt. Je hebt genoeg ervaring met HTML, Javascript én CSS en bent klaar voor een nieuwe uitdaging! Solliciteer jij bij iSense en krijg jij vervolgens deze baan? Dan krijg jij toegang tot het iSense Learning Center en kan je deelnemen aan

Bekijk vacature »

Senior Backend Developer – Digital Agency

Organisatie: Deze Digital Agency in Amsterdam is met name gericht op het development/techniek gedeelte. Aangezien IT het hart van het bedrijf is, hebben zij een team van ruim 20 developers zitten met allemaal een liefde voor hun vak. Ze zijn enorm trots op hun klanten en de variatie hierin. Denk hierbij aan maatschappelijk verantwoorde projecten van Greenpeace en Squla. Maar ook de grotere namen zoals een Samsung, ING, Jumbo en Rijksoverheid. Het bedrijf is gelegen in het centrum van Amsterdam op maar 10 minuten loopafstand van het centraal station. De voertaal binnen het bedrijf is Nederlands en het beschikken over

Bekijk vacature »

Software Engineer / Back-End Developer (JAVA)

Software Engineer / Back-End Developer (HBO / WO, Ruby on Rails, Java, API, Regio Oost Nederland) Organisatie Trinamics Nijmegen is op zoek naar een Software Engineer / Back-End Developer met ervaring met Ruby on Rails, Java en API. Je komt te werken bij een organisatiedie technologieën maakt en bedenkt om het dagelijkse leven makkelijker te maken. De opdrachtgever heeft meerdere sectoren waarin zij werken en één daarvan is de sector Healthcare. Dit is ook de afdeling waarop jij komt te werken. Functieomschrijving Je hebt een technische achtergrond en hebt passie voor programmeertalen en software. Je hebt een afgeronde HBO of

Bekijk vacature »

LEAD DEVELOPER TYPESCRIPT / ANGULAR / BOOTSTRAP

Functieomschrijving Voor een klant in de omgeving van Amersfoort zijn we op zoek naar een Lead developer die ervaring heeft en graag zijn tanden wil zetten in een project met Typescript / Angular.JS / Bootstrap. Je bent verantwoordelijk voor het bepalen van programmeer standaarden; Het maken van designs en je denkt mee over de (micro services) architectuur; Testen is essentieel en je denkt daarom ook mee over hoe dit verder geprofessionaliseerd kan worden; Coachen en opleiden van front-end developer; Aanspreekpunt en vraagbaak voor developers; Samen met andere lead developers denk je na over een solide visie voor de komende jaren.

Bekijk vacature »

Nabij Kampen een ervaren .NET Ontwikkelaar gezocht

Organisatie & Afdeling Voor een specialistische partner nabij Kampen ben ik op zoek naar ervaren .NET ontwikkelaars die ontzettend graag wilt werken met de nieuwste technieken op het gebied van Microsoft technologie. Deze partij is volledig gericht op het ontwikkelen van software o.b.v. Microsoft.NET. Naast het geven van gerichte trainingen aan hun klanten detacheren ze ook .NET specialisten. Ze hebben op dit moment twee vestigingen waaruit ze opereren. Op dit moment werken er ongeveer 50 personen, waarvan ongeveer 35 consultants. Op dit moment zijn ze gestaag aan het groeien, maar zijn ze altijd op zoek naar ervaren .NET Ontwikkelaars. De

Bekijk vacature »

Medior PHP Developer Rotterdam €2800- €3

Medior PHP Developer Rotterdam €2800- €3500 Wat ga je doen als Medior PHP developer? De corebusiness van het bedrijf is en blijft mobiele betalingen. In Rotterdam ga je als Medior PHP developer aan de slag. Jij gaat werken aan Voice-facturering, sms-factureringsverbindingen en Internet-factureringsoplossingen. Daarnaast zal jij gaan meedenken en werken aan een migratie project van CakePHP naar Symfony waar je o.a. gebruik maakt van MySQL, ElasticSearch en Redis. Daarbij zal je ook gaan werken aan integraties van API's van diverse internationale leveranciers binnen het eigen platform. De organisatie loopt voorop in de tijd en zijn uitgegroeid tot een wereldwijde speler.

Bekijk vacature »

CMS developer / .NET developer / sitecore develope

Functieomschrijving Wil jij werken bij een gepassioneerd IT bedrijf die in de TOP 20 van beste werkgevers voorkomt? Wil jij Iedere dag met plezier aan de slag om de wereld een stukje slimmer, beter en veiliger te maken? Reageer dan snel, zodat we met elkaar in gesprek kunnen gaan over wat jij gaat betekenen voor de toekomst van Sitecore! Ontwikkelen van Front-end en back-end oplossingen; Maken van designs; Samen met de klant ga jij voor de best passende oplossing in Sitecore; Je adviseert de klant en fungeert als partner om samen tot de beste oplossing te komen; O.b.v. Sitecore bouw

Bekijk vacature »

Junior .NET Ontwikkelaar gezocht nabij Zwolle!

Organisatie & Afdeling Voor een kleine, maar leuke partij nabij Zwolle, zijn wij op zoek naar een junior .NET Ontwikkelaar die zich graag verder wilt ontwikkelen in zijn/haar vakgebied. Deze partij ontwikkeld software op maat. Ze zijn gespecialiseerd in het ontwikkelen van web-based applicaties. Deze applicaties zijn gebaseerd o.b.v. ASP.NET. Deze partij ontwikkeld software voor een partner bedrijf en deze partner bedrijf geeft de software uit aan haar klanten. Op dit moment werken er ongeveer 10 medewerkers en ze zijn groeiende. De afdeling bestaat uit 3 developers en daarbij is ook één van de twee eigenaren deel van het team.

Bekijk vacature »

Back End Developer Mobile Apps Agile Scrum 2.700 -

Functieomschrijving Back End Developer Mobile Apps Agile Scrum 2.700 - 5.000 Voor de vacature als Back End Developer Mobile Apps Den Haag Agile Scrum ga je het volgende doen: Aan de slag bij onze App Center is een ervaring die je niet wilt missen. De lat ligt hoog, maar je krijgt ook alle ruimte om dat te bereiken. Onze ambitie is om het toonaangevende voorbeeld te worden in Nederland op gebied van app ontwikkeling. We zullen onszelf en onze omgeving altijd blijven uitdagen om de beste oplossingen voor onze gebruikers te creëren. Bij het onze App Center werken we met

Bekijk vacature »

Als Front End Developer in een multidisciplinair t

Als Medior/Senior Frontend developer kom je te werken in een multidisciplinair team. Samen met 16 andere developers zal je hoofdzakelijk technische frontend werkzaamheden verrichten voor nieuwe applicaties die er worden ontwikkelt. Momenteel wordt er hard gewerkt aan o.a. twee nieuwe projecten. Waaronder een applicatie om Hypotheekadviseurs en Hypotheekaanbieders te ondersteunen in hun werkzaamheden. Vanuit de ambitie om de hypotheek sector te veranderen is mijn opdrachtgever in 2000 gestart vanuit een informele en platte organisatie werken zij met zo’n 30 medewerkers aan projecten voor alle labels die binnen de holding vallen. Deze partij groeit hard omdat ze goede betaalbare software leveren

Bekijk vacature »

iOS Developer, Amsterdam, start-up, competitive sa

Senior iOS Developer needed for a well-backed start-up product development company in Amsterdam. The Senior iOS Developer will be looking for a company using current and cutting edge technologies. Our client has introduced micro-services architecture and will be taking the product down a machine learning and analytical route. You will be happy to join a small but very passionate team. With plans to grow and double the development team during the year. You'll be working with a team full of enthusiastic professionals with a thirst for knowledge. You'll also be provided with complimentary breakfast and lunch. The Senior iOS Developer

Bekijk vacature »

Lead Software Developer .Net (.Net, Team Lead, Vis

LEAD SOFTWARE DEVELOPER .NET (.Net, C#, ICT Software Development, Team lead, Visual Studio, SQL Server, Rest, SOAP) Functieomschrijving Kort maar krachtig: jij bent zowel operationeel als sparringpartner in te zetten als het gaat om software toepassingen. Je zet functionele vragen om naar software oplossingen, maar ondersteunt ook bij het ontwikkelen van een lange termijn strategie. Wat doe je? “Ik zet functionele vraagstukken om naar werkende software oplossingen” Met jouw kennis en kunde bouw je functionele software oplossingen voor je klanten. Ook zal je samen met de product owner bezig zijn om strategieën te ontwikkelen voor de toekomst Zo ziet je

Bekijk vacature »

Senior .NET developer/Teamlead .NET gezocht nabij

Organisatie & Afdeling Nabij Arnhem is een partner van mij op zoek naar een Senior .NET developer die naast hands-on werkzaamheden ook bekwaam is in het adviseren/aansturen van een team. Deze software partij bestaat volgend jaar 10 jaar en zitten op dit moment met ongeveer 30 medewerkers in één vestiging nabij Arnhem. Ze hebben drie hoofdoplossingen waar ze continue aan werken voor hun klanten. Daarom hebben ze bijna 20 verschillende developers in dienst om de verschillende oplossingen aan te bieden bij hun specifieke klanten. Binnen de afdeling van developers zijn er teams ingedeeld. Elk team houdt zich bezig met een

Bekijk vacature »

Medior .NET Developer Klantcontact, development en

Organisatie & Afdeling Graag stel ik je voor aan deze goede relatie van Starapple die zich bezig houdt met het ontwikkelen van maatwerk software op locatie bij klanten. De organisatie heeft 4 vestigingen in Nederland en 2 vestigingen in het buitenland en werkt voor diverse grote multinationals waar zij hun eigen consultants naartoe sturen voor het ontwikkelen van software op locatie. Voor deze vacature zijn zij op zoek naar aanwinsten uit de omgeving Utrecht. Binnen dit bedrijf zijn er korte lijnen met de directie en wordt er met veel passie gewerkt aan de ontwikkeling van de consultants. Met meer dan

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

17/08/2018 01:53:44
 
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.