Klasseneigenschaft Methodenübergreifend (prototype-Klasse)

frubbel

Grünschnabel
Moinsen,

ich versuche dieses hier:

PHP:
var MP = Class.create({

	initialize: function() {
		this.year = "";
		this.month = "";
		this.day = "";
	},

	getMonthEntries : function() {
		this.getDate();
		try {
			alert(this.year);
			$("debug").update(this.year);
		} catch(e) {
			showError(e);
		}
               // ... 
	},

	getDate : function() {
		_this = this;
		try {
			new Ajax.Request('action.php', {
				method : "POST",
				parameters : "action=getDate",
				onComplete : function(resp) {
					var json = resp.responseText.evalJSON();
					_this.year = json.year;
				}
			});
		} catch(e) {
			showError(e);
		}
	}
});

Sprich - ich will den Ajax-Response in die andere Methode "retten" ... allerdings funktioniert das ganze erst nach dem zweiten Klick.

So wird das ganze aufgerufen.
PHP:
<script type="text/javascript">

mp = new MP();

</script>
</head>
<body>
<div onclick="mp.getMonthEntries();">Click</div>
<div id="debug"></div>

Fällt irgendjemandem auf, was ich da falsch mache / nich blicke?
 
Zuletzt bearbeitet:
Hi,

das Problem ist, dass das Script in der Methode getMonthEntries nach Aufruf von getDate() sofort weiter ausgeführt wird. Der HTTP-Request läuft ja parallel. Du müsstest das Div "debug" im onComplete-Handler aktualisieren.

LG
 

Neue Beiträge

Zurück