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 05.08.2010, 14:22  
Erfahrener Benutzer
 
Registriert seit: 06.12.2009
Beiträge: 115
PHP-Kenntnisse:
Fortgeschritten
luks2com zeigte ein beschämendes Verhalten in der Vergangenheit
Standard jquery in AJAx aufruf + return

Hallo,

ich habe eine JS funktion:

Code:
function Text(text)
		{		
		
			urln = 'xyz'+text;				
			$.ajax({
				url: urln,
				success: function(msg){			
					return msg;
					
				}
			});
			
		}
Das mit dem return funktioniert nicht. Also ich möchte diese funktion Text(text); aufrufen können und dann soll das ergebniss des ajax aufrufes zurückgegeben werden.

Was habe ich falsch gemacht?
luks2com ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 05.08.2010, 14:33  
Erfahrener Benutzer
 
Registriert seit: 15.04.2010
Beiträge: 813
PHP-Kenntnisse:
Fortgeschritten
Paul.Schramenko befindet sich auf einem aufstrebenden Ast
Standard

naja das return an der Stelle bewirkt eigentlich gar nichts. Ich kann dir nicht mal sagen wohin dein mit Ajax geladener kontent verschwindet...
Veruschs mal mit alert(msg) statt return msg.
Normalerweise schreibst du in einen container das was da zurückkommt.
Und ja ich weiß, es ist nur ein Beispiel, aber bist du dir bewusst, das dein uln eine gültige Seite sein muss?
__________________
"My software never has bugs, it just develops random features."
"Real programmers don't comment. If it was hard to write, it should be hard to understand!"
Positive Bewertungen sind nicht unwillkommen...
Paul.Schramenko ist offline   Mit Zitat antworten
Alt 05.08.2010, 14:34  
Erfahrener Benutzer
 
Registriert seit: 06.12.2009
Beiträge: 115
PHP-Kenntnisse:
Fortgeschritten
luks2com zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

ja bei alert kommt der richtige inhalt nur irgendwie wird das nicht von der Funktion Text zurückgegeben?!
luks2com ist offline   Mit Zitat antworten
Alt 05.08.2010, 14:56  
Erfahrener Benutzer
 
Registriert seit: 15.04.2010
Beiträge: 813
PHP-Kenntnisse:
Fortgeschritten
Paul.Schramenko befindet sich auf einem aufstrebenden Ast
Standard

da wird ja auch nichts mehr passieren. Das JS ist fertig geladen. Du soltest einfach den Content irgendwo reinschreiben...
Sowas in der Art:
Code:
function Text(text) {        
    urln = 'xyz'+text;                
    $.ajax({
        url: urln,
        success: function(msg){            
            $('#myIdIWantToLoadMyContentIn').html(msg);
        }
    });            
}
__________________
"My software never has bugs, it just develops random features."
"Real programmers don't comment. If it was hard to write, it should be hard to understand!"
Positive Bewertungen sind nicht unwillkommen...
Paul.Schramenko ist offline   Mit Zitat antworten
Alt 05.08.2010, 15:17  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Du hast nicht verstanden, wie das Arbeiten mit Callback-Funktionen funktioniert.

Die Callback-Funktion wird extra deshalb verwendet, damit Text nicht auf das Ergebnis des asynchronen Requests warten muss.
Text macht den Request, und sagt, wenn der irgendwann mal fertig ist, soll bitte die Callback-Funktion aufgerufen werden. So, das war's von mir, ich bin jetzt fertig, Tschüss.

Damit ist die Funktion Text beendet - und du kannst nicht erst später aus ihr heraus eine Rückgabe machen, das hättest du wenn gleich tun müssen.

Du könntest jetzt auf die Idee kommen, statt einem asynchronen einen synchronen Request zu machen - dann bräuchtest du keine Callback-Funktion mehr, sondern Text selber könnte das Ergebnis des Requests verarbeiten. Das wäre aber extrem unklug - weil du damit den Browser inkl. UI komplett blockierst, bis das Ergebnis des Requests eingetroffen ist.


Arbeite bitte mal ein AJAX-Tutorial durch, das diese Basics erklärt.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 05.08.2010, 16:07  
Erfahrener Benutzer
 
Registriert seit: 25.09.2009
Beiträge: 2.114
PHP-Kenntnisse:
Fortgeschritten
BlackScorp wird schon bald berühmt werdenBlackScorp wird schon bald berühmt werden
Standard

du hast aber die möglichkeit dein ergebnis zwischenzuspeichern und zum späteren zeitpunkt ausgeben lassen etwa so:

PHP-Code:
myFunctions = function(){
var 
myText "";
returnText = function(){
return 
myText;
}
loadText = function(text){
  
urln 'xyz'+text;                
    $.
ajax({
       
type"GET",
            
urlurln,
        
success: function(msg){            
            
myText msg;
        }
    });  
}
}
var 
= new myFunctions();

f.loadText('text');//ajax reuqest ausführen
// irgendwas tolles machen
alert(f.returnText()); //ausgabe des ajax requests 
MFG
__________________
Mein kleines Projekt
-Cruel Online-
5 von 3 Leuten können kein Bruchrechnen
BlackScorp ist offline   Mit Zitat antworten
Alt 06.08.2010, 09:26  
Erfahrener Benutzer
 
Registriert seit: 30.07.2008
Beiträge: 1.167
PHP-Kenntnisse:
Fortgeschritten
xm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphäre
Standard

Wenn Du den Code sequentiell abarbeiten lässt, wirst Du aber wahrscheinlich ein leeres Alert bekommen, da der Request vermutlich länger dauert als die Abarbeitung bis zum alert..
xm22 ist offline   Mit Zitat antworten
Alt 06.08.2010, 17:13  
Erfahrener Benutzer
 
Registriert seit: 15.04.2010
Beiträge: 813
PHP-Kenntnisse:
Fortgeschritten
Paul.Schramenko befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von xm22 Beitrag anzeigen
Wenn Du den Code sequentiell abarbeiten lässt, wirst Du aber wahrscheinlich ein leeres Alert bekommen, da der Request vermutlich länger dauert als die Abarbeitung bis zum alert..
Du meinst das jetzt auf den Beitrag von xm22 bezogen oder?
__________________
"My software never has bugs, it just develops random features."
"Real programmers don't comment. If it was hard to write, it should be hard to understand!"
Positive Bewertungen sind nicht unwillkommen...
Paul.Schramenko ist offline   Mit Zitat antworten
Alt 09.08.2010, 10:39  
Erfahrener Benutzer
 
Registriert seit: 25.09.2009
Beiträge: 2.114
PHP-Kenntnisse:
Fortgeschritten
BlackScorp wird schon bald berühmt werdenBlackScorp wird schon bald berühmt werden
Standard

Zitat:
Zitat von xm22 Beitrag anzeigen
Wenn Du den Code sequentiell abarbeiten lässt, wirst Du aber wahrscheinlich ein leeres Alert bekommen, da der Request vermutlich länger dauert als die Abarbeitung bis zum alert..
überzeugt.. dann ein wenig überarbeitet:

PHP-Code:
myFunctions = function(){
var 
myText "";
var 
isSuccess false;
returnText = function(){
if(
isSuccess)
alert(myText);
}
loadText = function(text){
   
isSuccess false;
  
urln 'xyz'+text;                
    $.
ajax({
       
type"GET",
            
urlurln,
        
success: function(msg){        
            
isSuccess true;    
            
myText msg;
        }
    });  
}
}
var 
= new myFunctions();

f.loadText('text');//ajax reuqest ausführen
// irgendwas tolles machen
f.alertText(); //ausgabe des ajax requests 
__________________
Mein kleines Projekt
-Cruel Online-
5 von 3 Leuten können kein Bruchrechnen
BlackScorp ist offline   Mit Zitat antworten
Alt 09.08.2010, 12:34  
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

Das dürfte kaum funktionieren.

Die wichtigste Frage hat noch niemand gestellt - wo wird der return verarbeitet. Wenn das eine Funktion ist, die nach dem Ajax-Success ausgeführt werden soll, dann gehört sie eben genbau dort hinein. Das geht auch mit einer Angabe einer Callback-Funktion.
__________________
--
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
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] jquery ajax replaceWith Thorus JavaScript, Ajax und mehr 2 28.07.2010 09:35
Einstieg in Ajax (Jquery?) Empfehlung omex JavaScript, Ajax und mehr 3 28.05.2010 22:37
[Erledigt] Ajax, jQuery - CKEDITOR Fehler bei Instanzierung jGeee JavaScript, Ajax und mehr 3 26.03.2010 09:09
jQuery Ajax und $(this) Problem halskrause JavaScript, Ajax und mehr 8 01.03.2010 17:39
JS-Kalender funktioniert nicht im IE8 ToxicToast JavaScript, Ajax und mehr 4 18.11.2009 16:26
Zweiter Ajax Aufruf geht nicht im IE bhoernchen JavaScript, Ajax und mehr 2 13.09.2009 21:37
[Erledigt] jquery ajax, event bei nachgeladenem div auslösen mad JavaScript, Ajax und mehr 9 20.08.2009 21:39
jQuery mit AJAX ohne ActiceX im IE? krush JavaScript, Ajax und mehr 2 11.08.2009 08:54
Ajax + PHP + jquery Accordion zusammenführen. gamerphil JavaScript, Ajax und mehr 0 30.04.2009 17:42
Bilder an bestimmten Tagen anzeigen Eclipse16V PHP Tipps 2009 12 15.04.2009 15:28
[Erledigt] Jquery Ajax Rückgabewert weiterverwenden heohni JavaScript, Ajax und mehr 5 26.02.2009 09:52
Drag & Drop via JQuery & Ajax --> Geht nicht :( Plague JavaScript, Ajax und mehr 2 23.10.2008 12:19
Prototype Ajax Array Datenmüll notyyy HTML, Usability und Barrierefreiheit 2 08.04.2008 10:57
Voraussetzungen für dieses Thumbnail Skript Plague PHP Tipps 2008 9 19.09.2007 13:35
[Erledigt] Datenbank nicht erreichbar PHP Tipps 2005-2 27 19.08.2005 12:20

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
jquery ajax return, jquery ajax success return, http://www.php.de/javascript-ajax-und-mehr/70453-jquery-ajax-aufruf-return.html, jquery ajax success, jquery ajax php return, jquery ajax aufruf, jquery $.ajax return, ajax jquery return, ajax return, jquery load abwarten, ajax success return, php return jquery, jquery ajax return php, jquery success return, jquery return, jquery return from ajax, ajax rückgabewert php, jquery return ajax, jquery ajax abwarten, jquery $.ajax return html with php

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:48 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