kkapsner
Super Moderator
Du bist da über das erste "A" in AJAX gestolpert... und dein zweiter Ansatz ist genau die Lösung dazu. Die Requests werden asynchron verarbeitet. D.h. der Request wird angestoßen und danach läuft das JS einfach weiter und stößt den zweiten an. Welcher der Beiden jetzt als erster fertig ist, ist Glücksache. Dadurch, dass du sie voneinander abhängig gemacht hast, dauert das Ganze zwar ein bisschen länger (sequenzielle Abarbeitung anstatt parallele) aber dafür ist garantiert, dass alles richtig läuft.
Zu deinem zweiten Problem. HTML-Attribute werden generell nicht verschickt. Nur das name- und value-Attribut wird beim Abschicken des <form>s beachtet (und die auch nur bei den einschlägig bekannten HTML-Elementen).
setAttribute() ist eher nicht zu empfehlen. Verwende lieber den direkten Zugriff bei Standardattributen (z.B.
Wenn du da was mitsenden willst, bietet sich an, dass du ein <input type="hidden"> machst, das dann den Namen und den Wert enthält.
Zu deinem zweiten Problem. HTML-Attribute werden generell nicht verschickt. Nur das name- und value-Attribut wird beim Abschicken des <form>s beachtet (und die auch nur bei den einschlägig bekannten HTML-Elementen).
setAttribute() ist eher nicht zu empfehlen. Verwende lieber den direkten Zugriff bei Standardattributen (z.B.
NODE.id = ...
oder NODE.value = ...
). Wenn du selbst definierte Attribute verwenden willst, bieten sich die data-*-Attribute an, die man dann sehr schön über NODE.dataset.deinAttributName
oder in jQuery mit .data() zugreifen kann. Aber auch diese werde nicht mitversendet.Wenn du da was mitsenden willst, bietet sich an, dass du ein <input type="hidden"> machst, das dann den Namen und den Wert enthält.