• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Variablen immer wieder neu definieren

XardasX

New member
Hallo zusammen,

ich befürchte schon, dass der Titel unpassend gewählt ist, aber ich weiß nicht genau was mein Problem am besten beschreibt.
Erstmal mein funktionierender Code:

PHP:
<html>
<head>  
<link href="dropzone.css" type="text/css" rel="stylesheet" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="dropzone.js"></script>
<script>
Dropzone.options.myDropzone1 = {
    init: function() {
        thisDropzone1 = this;
        $.get('upload.php', function(data) {
            $.each(data, function(key,value){
                var mockFile = { name: value.name, size: value.size };
                thisDropzone1.options.addedfile.call(thisDropzone1, mockFile);
                thisDropzone1.options.thumbnail.call(thisDropzone1, mockFile, "uploads/"+value.name);
            });
        });
    }
};
Dropzone.options.myDropzone2 = {
    init: function() {
        thisDropzone2 = this;
        $.get('upload.php', function(data) {
            $.each(data, function(key,value){
                var mockFile = { name: value.name, size: value.size };
                thisDropzone2.options.addedfile.call(thisDropzone2, mockFile);
                thisDropzone2.options.thumbnail.call(thisDropzone2, mockFile, "uploads/"+value.name);
            });
        });
    }
};
</script>
</head>
<body>
<form action="upload.php" class="dropzone" id="my-dropzone1"></form>
<form action="upload.php" class="dropzone" id="my-dropzone2"></form>
</body>
</html>

So jetzt zu dem was die Seite einmal machen soll:
Es soll in einer Schleife Dropzones erstellt werden.

Doch jede Dropzone braucht seinen eigenen Javascript mit seinen eigenen Variablen.
Ich hoffe es ist halbwegs verständlich was ich meine.

Wie ist das möglich?

Viele Grüße
XardasX
 
Hallo kkapsner,

Entschuldige dass ich jetzt erst antworte.
Könntest du mir ein wenig genauer beschreiben was du meinst?
Ich bin absoluter JavaScript-Neuling und benutze es mit Dropzone zum ersten Mal.
 
Er meint, dass du die Elemente/Objekte syntaktisch so ansprechen sollst wie er es verlinkt hat, nach Schema 4 aus SelfHTML. Ist der gezeigte Code nicht von dir selbst?
 
ich weiß dass ich mich grade dumm anstelle, aber könntest du mir das als Beispiel mal zeigen?
Bei dem Schema 4 müsste ich doch wieder jedes Formular selbst ansprechen oder? Aber es sollen dynamisch viele Dropzones geben.
 
Über das Schema kannst du Eigenschaften von Objekten mit dynamischen Namen ansprechen. Dadurch kannst du einfach durch deine Schleife durchiterieren, dir den richtigen Eigenschaftsnamen zusammenbauen und dann dem Objekt Dropzone.options die neue Eigenschaft geben.

Das würde in deinem Fall in etwas so aussehen:
Code:
for (var i = 1; i <= 2; i += 1){
	Dropzone.option["myDropzone" + i] = {
		init: function() {
			var This = this;
			$.get('upload.php', function(data){
				$.each(data, function(key,value){
					var mockFile = { name: value.name, size: value.size };
					This.options.addedfile.call(This, mockFile);
					This.options.thumbnail.call(This, mockFile, "uploads/"+value.name);
				});
			});
		}
	}; 
}
 
Zurück
Oben