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

[GELÖST] Zähler aus funktion auslesen

KeithKeith

New member
Hallo,
ich möchte gerne ausserhalb einer funktion abfragen ob Schleife innerhalb einer Funktion auf einen bestimmten Wert (bla.lenght) hochgezählt hat.
Wenn nicht, soll ein Alert ausgeführtz werden.
Code:
function getDivRowInfo()
{
 data = new FormData();
var dataString = false;
var wpuserid = document.getElementById('sndBtn').value;
        for (var i = 0;i<dropzones.length;i++)
        {
                if(dropzones[i].dataset.info == '-'){continue;}
				data.append('bildinfo['+i+'][UID]', wpuserid);
				data.append('bildinfo['+i+'][PID]', dropzones[i].dataset.info);
				data.append('bildinfo['+i+'][MID]', dropzones[i].dataset.id);
                dataString=true;
        }
        return dataString;
}

und wird dann von ... verschickt:
Code:
function sendHome()
{
var testa = dataString;
var sendStr = getDivRowInfo();
//?berpr?fen ob ein Bild abgelegt wurde
if(!sendStr){ alert('Die Matrix ist unvollständig');return; } //Hier wird  "nur" auf true, oder false geprüft, nicht aber auf "nur ein bisschen ausgefüllt"

var xhtp = new XMLHttpRequest();
xhtp.open('post','http://meinedomain/datbac_v5.php',true);
xhtp.addEventListener('load',datbac,false);
xhtp.send(data);
}
dropzones.length zählt "auf" 8x

Wenn ich z. B frage ob i==7 ist, dann sende nicht würde ich das problem lösen, aber leider gelingt es mir nicht.
Hat jemand einen Tipp, oder ein Beispiel wie sowas am besten gelöst wirdß
Vielen Dank und Gruß KK
 
Zuletzt bearbeitet von einem Moderator:
Dann mach dir doch ne Zählervariable in die Funktion, vergleiche das mit der Anzahl der Dropzones und gib entsprechend true oder false zurück:
Code:
function getDivRowInfo()
{
    data = new FormData();
    var dropzonesAppenden = 1;
    var wpuserid = document.getElementById('sndBtn').value;
    for (var i = 0;i<dropzones.length;i++)
    {
        if(dropzones[i].dataset.info == '-'){continue;}
        data.append('bildinfo['+i+'][UID]', wpuserid);
        data.append('bildinfo['+i+'][PID]', dropzones[i].dataset.info);
        data.append('bildinfo['+i+'][MID]', dropzones[i].dataset.id);
        dropzonesAppenden=dropzonesAppenden+1;
    }

    return (dropzonesAppenden === dropzones.length) ? true : false;
}
 
ja, ich habe das schon mit i probiert.
wie kann ich denn sowohl dataString als auch (dropzonesAppenden === dropzones.length) zurückgeben(an die nächste Funktion)?
Ist diese Schreibweise vergleichbar mit if Then ? (dropzonesAppenden === dropzones.length)
und Danke für die Hilfe
Gruß KK
 
Ja was willst du denn nun genau als Rückgabewert haben und wie bzw. mit was soll der berglichen werden damit du weist ob "alles" oder "nur ein bisschen" ausgefüllt ist?
 
mir fällt bei deiner frage gerade auf, dass es ja in jedem fall die dropzones gibt.
die frage müßte eigentlich lauten sind auch alle mit "etwas" gefüllt?
Bsp. data.append('bildinfo['+i+'][PID]', dropzones.dataset.info); <- ist bei Durchlauf etwas enthalten, dann weiter, oder nicht, dann alert.
ja, eigentlich ist das sie Lösung.
in UID ist immer die gleiche ID enthalten.
In PID und MID sind unterschiedliche Werte, oder keine. Wenn keine,dann Alert.
Gruß KK
 
Zuletzt bearbeitet:
wie kann ich denn sowohl dataString als auch (dropzonesAppenden === dropzones.length) zurückgeben(an die nächste Funktion)?
Du könntest ein Objekt zurückgeben, das diese beiden Informationen enthält:
Code:
return {
	send: dropzonesAppenden === dropzones.length,
	formData: data
};

PS: du hast da ein paar globale Variablen - die solltest du auf jeden Fall los werden.
 
Zurück
Oben