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 25.02.2009, 14:22  
Erfahrener Benutzer
 
Registriert seit: 08.01.2006
Beiträge: 212
heohni
Standard [Erledigt] Jquery Ajax Rückgabewert weiterverwenden

Hi, ich habe folgenden Code:

var how_many = "";
$.ajax({
type: "POST",
url: "/ajax_add_selected_product_to_session.php",
success: function(msg){
/* add here what to do on success */
//alert(msg);
how_many = msg;
//alert(how_many);
}
});

Wenn ich jetzt (also ausserhalb der Ajax function) zum Beispiel ein
alert(how_many);
mache, ist der Wert leer. Er müsste aber eine 2 zurückgeben. Gebe ich innerhalb der function den Wert aus, gibt er mir auch das richtige Ergebnis zurück.

Ich brauche den Wert, um ihn in einer weiteren if/else Angelegenheit überprüfen zu können.
Sicher nur ein Denkfehler, oder? Oder wie komme an den Wert aus how_many?

Danke und Gruß
Heohni
heohni ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 25.02.2009, 15:01  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Hi Heohni,
wahrscheinlich greifst du zu einem zeitpunkt auf how_many zu, zu dem der neue Inhalt noch garnicht gesetzt wurde. Also bevor die success-Funktion überhaupt aufgerufen wurde.

Abhängig davon, was genau du da machen möchtest bieten sich dann verschiedene Lösungen an. Zum Beispiel kannst du den Request synchron ausführen (async:false) oder alles innerhalb der success-Funktion abhandeln...
__________________
Today you...Tomorrow me.
agrajag ist offline   Mit Zitat antworten
Alt 25.02.2009, 15:09  
Erfahrener Benutzer
 
Registriert seit: 08.01.2006
Beiträge: 212
heohni
Standard

Hi,

inzwischen habe ich es geändert und wirklich alles in success teil verlegt.

meine Funktion schaut derzeit so aus:
$(document).ready(function() {
var howmanyfromsession = "";
var howmanyonpage = $("input[name^='paradigm']:checked").length;
$.ajax({
type: "POST",
url: "/ajax_add_selected_product_to_session.php",
success: function(msg){
/* add here what to do on success */
//alert(msg);
howmanyfromsession = msg;

if (howmanyfromsession == 1){
$(".amount").append(' (Derzeit ist ' + howmanyfromsession + ' Produkt vorgemerkt)');
}else if(howmanyfromsession > 1){
$(".amount").append(' (Derzeit sind ' + howmanyfromsession + ' Produkte vorgemerkt)');
}

if(howmanyonpage == 0 && howmanyfromsession == 0) {
//alert('None are checked on page');
$(".requestbutton").attr("disabled", "disabled");
}else if(howmanyonpage == 0 && howmanyfromsession > 0){
//alert('At least one is checked');
$(".requestbutton").removeAttr("disabled");
$(".requestbutton").click(function(){
$("#list").submit();
});
}

$(".requestbutton").click(function(){
if($("input[name^='paradigm']:checked").length > 0) {
$("#list").submit();
}
});
}
});
});

Hierzu noch eine Frage.
Der Code oben, wird ja immer ausgeführt, wenn die Seite neu geladen ist.
ich würde aber gerne das so schreiben, das daraus eine eigen function wird, die bei Bedarf, bzw. einzelnen anderen Events auch aufrufen kann.

Kurz zusammengefasst, habe ich hier eine Liste von Produkten. Jeder Eintrag kann per check box ausgewählt werden. Mit meinem Code oben prüfe ich, welche Produkte ich vorher schon ausgewählt habe und diese entsprechend zu kennzeichnen und eine Meldung auszugeben, wie viele Produkte derzeit ausgewählt sind. Funktioniert ein bisschen wie das Warenkorb Prinzip.

Wenn ich jetzt aber auf ein Produkt einzeln klicke, um es ab oder auszuwählen, möchte ich die Statusmeldung natürlich auch aktualisieren. Dazu müsste ich das oben nochmals aufrufen.

Wie kann ich das machen? Ohne den Code in das neue Event zu duplizieren?
heohni ist offline   Mit Zitat antworten
Alt 25.02.2009, 15:45  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Das ganze ist schon eine Funktion. Du kannst sie jetzt noch in einer Variable ablegen:
Code:
var myHandler = functino(){ 
//mach was
};
myHandler(); // ruft das ganze auf
$('#blub').click(myHandler); // wird jetzt bei Klick aufgerufen...
Dann solltest du aber in der Funktion nicht mehr mit append() arbeiten, da dort sonst doppelt und dreifach "Derzeit ist xyz" steht.

P.S. Bitte verwende dochin Zukunft die [ code] [/ code]-Tags des Forums wennd u Quelltext postest.
__________________
Today you...Tomorrow me.
agrajag ist offline   Mit Zitat antworten
Alt 25.02.2009, 15:56  
Erfahrener Benutzer
 
Registriert seit: 08.01.2006
Beiträge: 212
heohni
Standard

Ok, das schaue ich mir mal an! Danke!
Auch danke für den [ code ] Hinweis!
heohni ist offline   Mit Zitat antworten
Alt 26.02.2009, 09:52  
Erfahrener Benutzer
 
Registriert seit: 08.01.2006
Beiträge: 212
heohni
Standard

Funktioniert, herzlichen Dank!
heohni 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
Fileupload via AJAX GSJLink HTML, Usability und Barrierefreiheit 13 17.05.2012 21:41
jQuery Plugin - so richtig? stayInside JavaScript, Ajax und mehr 5 23.02.2009 12:34
Rezeptdatenbank: Zutatenliste mit Ajax realisieren? espressoboy JavaScript, Ajax und mehr 6 25.01.2009 20:23
1111: AJAX meets PHP (indirectly) Nikolaus 2.0 Adventskalender 2008 5 15.12.2008 11:00
For Schleife mit jQuery phpbeginner JavaScript, Ajax und mehr 3 22.11.2008 22:35
Encoding PHP - AJAX iXtends PHP Tipps 2008 12 10.11.2008 09:36
Ajax Formular problem mit eingabe themonk JavaScript, Ajax und mehr 2 01.11.2008 20:25
Drag & Drop via JQuery & Ajax --> Geht nicht :( Plague JavaScript, Ajax und mehr 2 23.10.2008 12:19
Probleme mit Sonderzeichen bei Ajax (prototype)... go1denboy JavaScript, Ajax und mehr 1 31.08.2008 18:44
Scriptsuche AJAX AutoComplete mit PHP + JSON PsychoEagle Scriptbörse 5 07.08.2008 13:32
AJAX: Session-Inhalt an PHP Curanai HTML, Usability und Barrierefreiheit 2 05.11.2007 15:45
AJAX open mit POST und GET DonTermi HTML, Usability und Barrierefreiheit 5 04.10.2007 18:22
Ajax bild.php aktualisieren M3g4Star HTML, Usability und Barrierefreiheit 3 09.03.2007 17:14
Ajax und Sonderzeichen? GSJLink HTML, Usability und Barrierefreiheit 1 11.11.2006 14:36
AJAX: Newsflash: How to? SvenLittkowski HTML, Usability und Barrierefreiheit 11 26.09.2006 23:14

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
jquery ajax success, ajax rückgabewert, ajax success, jquery ajax rückgabewert, jquery ajax rückgabe, jquery ajax success function, jquery warenkorb, ajax jquery success, $.ajax success, jquery post, jquery ajax rückgabewert weiterverwenden, jquery $.ajax success, jquery success, jquery post success, jquery.ajax success, jquery ajax php rückgabe, jquery ajaxsuccess, ajax rückgabe, .ajax success, jquery ajax session

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