login  Naam:   Wachtwoord: 
Registreer je!
 Forum

javascript callback initial function

Offline roy - 24/09/2008 15:46 (laatste wijziging 25/09/2008 16:10)
Avatar van royPHP gevorderde Beste allemaal,

IK wil vanuit een functie een andere functie aanroepen die alleenmaar data uit de datbase ophaald en de waarde returned.

Waarom kan ik geen waarde returnen naar de eerste functie. Daar wil ik vervolgens de data bewerken.

Dus de tweede functie moet alleen data ophalen en returnen..

zoiets:

  1. function getAjaxRequest(classname, method, arguments)
  2. {
  3. $.get("../../include/service.php?classname=" + classname + '&method=' + method + '&arguments=' + arguments,
  4. function( response ) {
  5. return response;
  6. }
  7. );
  8.  
  9. }
  10.  
  11. function buildMenu()
  12. {
  13. getAjaxRequest('menu', 'getMenu', null);
  14. alert(response);
  15.  
  16. }

Hopende op wat uitleg,
Roy

10 antwoorden

Gesponsorde links
Offline Kr4nKz1n - 24/09/2008 15:55
Avatar van Kr4nKz1n Onbekend function( response ) zie ik een keer staan.

Dit mag gewoon? Aangezien je met deze benaming een function aanmaakt...
Offline roy - 24/09/2008 16:08
Avatar van roy PHP gevorderde ik maak gebruik van jquery

de ajax functie, wordt een dynamische.

Ik zie geen antwoord op de vraag, waarom het gereturnde niet gealert wordt....
Offline Kr4nKz1n - 24/09/2008 16:34
Avatar van Kr4nKz1n Onbekend Ik zie geen antwoord op me vraag? Nu ook nog zeuren? Ik probeer er naar toe te gaan.

Moet je even graven.

Niet zo ongeduldig ja!
Offline Mad_Mike - 24/09/2008 16:38
Avatar van Mad_Mike PHP beginner
  1. #
  2. function buildMenu()
  3. {
  4. getAjaxRequest('menu', 'getMenu', null);
  5. alert(response);
  6. }


Je roept eerst je AJAX functie aan, deze voert een bepaalde actie uit en geeft de waarde terug. Maar hier doe je niets mee. Je alert een variabele die niet bestaat; niet in de functie en ook niet globaal.

var response = getAjaxRequest('menu', 'getMenu', null);

dit zou je verder opweg moeten helpen!

ps. Maak je gebruik van FireFox icm FireBug plugin? Dan kan je gemakkelijk javascript errors debuggen ;)
Offline roy - 24/09/2008 18:41
Avatar van roy PHP gevorderde Om te testen zeg ik in het php-bestand return "test";

Maar hij alert(undefined)



wat doe ik fout?
Offline Giant - 24/09/2008 21:24
Avatar van Giant PHP beginner zoals Mad_Mike ook al zei:
je maakt de variable response niet aan!

  1. var response = getAjaxRequest('menu', 'getMenu', null);
  2. alert(response);


doe het zo 
Offline roy - 25/09/2008 09:36 (laatste wijziging 25/09/2008 09:36)
Avatar van roy PHP gevorderde Beste,

Ik heb nu dit:...

  1. function buildMenu()
  2. {
  3. var response = getAjaxRequest('menu', 'getMenu', null);
  4. alert(response);
  5.  
  6. }
  7.  
  8. function getAjaxRequest(classname, method, arguments)
  9. {
  10. $.getJSON("../../include/service.php?classname=" + classname + '&method=' + method + '&arguments=' + arguments,
  11. function(data) {
  12. return data;
  13. }
  14. );
  15.  
  16. }


php:

  1. <?
  2. require_once("includeAll.inc.php");
  3. $cPage = new page($conn);
  4. $json = new Services_JSON();
  5.  
  6.  
  7. if($_GET['classname'] == 'menu')
  8. {
  9. if($_GET['method'] == 'getMenu')
  10. {
  11. echo $json->encode($cPage->getPageById(1));
  12.  
  13. }
  14.  
  15. }
  16. ?>


In het firebug console zie ik wel response. Maar alert geeft undefined i.p.v. object...
Hoe kan het zijn dat ik in het console wel een response zie, maar dat data leeg is....


Groeten,
Roy
Offline BramBo - 25/09/2008 11:13
Avatar van BramBo JS gevorderde function(data) { return data; } is een callback methode en zal dus niet retourneren naar je initiële methode, je kan echter zelf een callback meegeven.

like so:
  1. function mijn_callback(data) {
  2. alert(data);
  3. }
  4.  
  5. function buildMenu()
  6. {
  7. getAjaxRequest('menu', 'getMenu', null, mijn_callback);
  8. }
  9.  
  10. function getAjaxRequest(classname, method, arguments, callback)
  11. {
  12. $.getJSON("../../include/service.php?classname=" + classname + '&method=' + method + '&arguments=' + arguments, callback);
  13. }
Offline roy - 25/09/2008 14:29 (laatste wijziging 25/09/2008 14:29)
Avatar van roy PHP gevorderde Dus het is onmogelijk om een aparte functie te maken die alleenmaar de data ophaald uit de database en dat terug geeft aan de functie waar de aanroep heeft plaatsgevonden?

Offline BramBo - 25/09/2008 18:55
Avatar van BramBo JS gevorderde Neen, dit zou betekenen dat de calls Synchroon lopen Asynchronous JavaScript and XML 

Anyway je kunt de functie zelf ook mee geven en niet apart te definieren
  1. getAjaxRequest('menu', 'getMenu', null, function(data) { alert(data);});
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.187s