php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.11.2010, 14:08  
Erfahrener Benutzer
 
Registriert seit: 04.08.2010
Beiträge: 287
PHP-Kenntnisse:
Fortgeschritten
zwutz wird schon bald berühmt werden
Standard [Erledigt] lokale Variable in callback-Funktion verändern

Quelltexte sagen mehr als tausend Worte

Code:
var get_json_data = function() {
    var result;

    $.getJSON(options[$(that).id].source_file,
        {
            'id': 0
        }, function(response) {
            result = response;
            //1
        }
    );

    //2
    return result;
}
response enthält dabei die Daten, die meine Funktion zurückgeben soll

Bei Position //1 enthält result noch die gewünschten Daten, an Position //2 nichtmehr (was nach einiger Überlegung auch logisch ist, da der return vor dem callback ausgeführt wird)

Also wie bring ich den Inhalt von response am besten nach draußen?
zwutz ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 09.11.2010, 14:36  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.266
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Funktionsaufrufe sind synchron, ein AJAX-Request üblicherweise asynchron. Das heißt die Funktion wartet nicht auf asynchrone Abfragen. Dein Vorhaben kann so also nicht funktionieren (es sei denn du machst den AJAX-Request synchron, sprich die Funktion wartet auf das Ergebnis, was sehr sehr unüblich ist).

Statt get_json_data() solltest du Callbacks einsetzen. Sprich du definierst eine Funktion, die ausgeführt werden soll, sobald die Antwort des AJAX-Requests verfügbar ist.

Das sind allerdings AJAX-Grundlagen. Du solltest dich erstmal in die Materie einlesen.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 09.11.2010, 14:53  
Erfahrener Benutzer
 
Registriert seit: 04.08.2010
Beiträge: 287
PHP-Kenntnisse:
Fortgeschritten
zwutz wird schon bald berühmt werden
Standard

ist mir ja alles klar, so fern der Materie bin ich nun auch nicht, wie du es mir zu unterstellen versuchst. Ich bin mir nur grad nicht im Klaren, wie ich das mit callbacks geregelt bekomm.
Und callbacks musst du mir auch nicht erklären, wenn ich sie selbst bereits verwende -.-
Ja, ich weiß, du willst nur helfen, aber wenn du ne Frage zu multipler Vererbung hast, fang ich auch nicht an, dir OOP zu erklären. Trotzdem danke...

Ach dammich, ich glaub, ich muss mir die aktuelle Struktur nochmal durch den Kopf gehen lassen, wär auch zu schön gewesen
zwutz ist offline   Mit Zitat antworten
Alt 09.11.2010, 15:02  
Erfahrener Benutzer
 
Registriert seit: 04.08.2010
Beiträge: 287
PHP-Kenntnisse:
Fortgeschritten
zwutz wird schon bald berühmt werden
Standard

meine Funktion bekommt jetzt selbst ein callback-Attribut, das angibt, was mit den Daten gemacht werden soll... so können sie innerhalb dieser Funktion bleiben und ich kann asynchron bleiben.

Später kann ich ja dann immernoch die anderen readyStates abfragen, vorerst muss es so reichen
zwutz ist offline   Mit Zitat antworten
Alt 09.11.2010, 15:42  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
Beiträge: 2.094
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

http://api.jquery.com/trigger/
__________________
++++ Wieder einer ins Netz gegangen: Phishers Fritz zufrieden ++++
Blog
rudygotya ist offline   Mit Zitat antworten
Alt 09.11.2010, 20:22  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.266
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Deiner Frage nach war dir das mit der Synchronität eben nicht klar und ja, ich wollte nur helfen

Der letzte Parameter der jQuery-AJAX-Funktionen ist soweit ich weiß immer der Callback.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 13.11.2010, 16:31  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
Beiträge: 2.094
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

Zitat:
Zitat von zwutz
deplazierter Link ohne Hinweis, wie er helfen soll. Wo bitte verwende ich events?
Natürlich verwendest du noch keine Events. Was denkst du denn, was ich dir mit dem Link sagen wollte?

Warte, bitte nicht denken, ich kaue es dir gerne vor.
Ich wollte dir sagen, ja, Events wären eine schöne Lösung. Gerne nehme ich mir immer 20 Minuten Zeit, um deine Fragen zu beantworten. Tut mir leid, dass ich nicht viel Zeit für dich hatte und dir deswegen nur den Link hingeknallt habe. Das war keine Art von mir, wie konnte ich nur.

PHP-Code:
$.ajax({
    
success : function (response) {
         
// tu irgendwas
         
$(window).trigger('applicationReady'response);
    }
})


// irgendwo anders in deinem Code:

$(window).bind('applicationReady', function (evdata) {
    
// tu irgendwas mega tolles
}); 
__________________
++++ Wieder einer ins Netz gegangen: Phishers Fritz zufrieden ++++
Blog
rudygotya ist offline   Mit Zitat antworten
Alt 13.11.2010, 18:47  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Naja, ein event/binding ist dafür an sich nicht notwendig, weil es sein Problem auch nicht mehr löst als ein stino-Callback. Den Returnwert bekommt er asynchron schlicht nicht an dieser Stelle.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 13.11.2010, 20:16  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
Beiträge: 2.094
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

Zitat:
Also wie bring ich den Inhalt von response am besten nach draußen?
Es löst aber seine ursprüngliche Fragestellung mMn. sehr elegant mit einer sauberen Applikationsstruktur.

Zudem ist es kindisch, mich negativ zu bewerten, ohne den link wenigstens angelesen zu haben oder nachzufragen, wieso ich ihm den link gepostet habe. Ein „Was soll ich denn damit?“ wäre 100mal sympathischer gewesen. Daher auch die zynische Antwort.
__________________
++++ Wieder einer ins Netz gegangen: Phishers Fritz zufrieden ++++
Blog
rudygotya ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Funktionsberechtigungne, Rollen und Vererbung von Rechten Geryon Software-Design 37 02.11.2010 23:08
Globale Variable sdcleitung PHP Tipps 2010 23 02.11.2010 20:59
Problem Undefined variable: banbanban PHP Tipps 2009 5 04.03.2009 17:55
Undefined variable Undefined property: block xxJJxx PHP Tipps 2008 16 05.08.2008 15:30
Externe Variable über eine Funktion ausgeben errox PHP Tipps 2008 3 14.04.2008 11:26
PHP-GTK Tutorial Beitragsarchiv 9 02.11.2005 21:07
Variable Werte einer Funktion übergeben bendigo PHP Tipps 2005-2 4 03.08.2005 17:33
variable in Funktion nutzen, ohne übergeben Unbekanntes_Pferd PHP Tipps 2005-2 1 22.06.2005 19:20
wie mache ich ein variable aus ein funktion global? PHP Tipps 2005 2 09.02.2005 18:26
Funktion aufruf Variable überprüfen PHP Tipps 2005 48 11.01.2005 16:53
Funktion in php für eine variable Zahl von Form Inhalten? Paulo PHP Tipps 2004 14 27.09.2004 16:57
Auf Variable in extern gelagerter Funktion verwenden HTML, Usability und Barrierefreiheit 6 09.09.2004 14:05
Auf Variable in Funktion zugreifen PHP Tipps 2004 5 02.08.2004 23:57
Formel aus Variable ausgerechnet in andere Variable rein PHP Tipps 2004 5 11.07.2004 14:40
Variable verändern! PHP Tipps 2004 3 19.06.2004 13:47

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php callback variable ändern, javascript callbac var, ajax request callback variable, jquery callback variable, javascript variablen an callbackfunktionen übergeben, jquery callback function, js lokale variable ajax, javascript set variable in callback function, php variablen callback, javascript callback variable, http://www.php.de/javascript-ajax-und-mehr/73769-erledigt-lokale-variable-callback-funktion-veraendern.html, jquery parameter an callback übergeben, variable durch callback ändern, einer callback function parameter übergeben php, variable ändern nach return, callback funktionen javascript, variable in callback funktion, javascript variable in funktion verändern, jquery parameter an callback functin übergeben, jquery getjson callback daten übergeben

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:12 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum