Ich habe in einem Modul ein List-Element, bei dem ich mit onClick eine Funktion aufrufe.
Das ist soweit kein Problem, mein Problem ist die Frage, wie ich die ganze aktuelle Zeile der Liste übergeben kann.
In der Doku ( List — IP-Symcon :: Automatisierungssoftware) steht folgendes:
In der Definition des Konfigurationsformulares können die Werte der Tabelle als Variable $Name verwendet werden. Auf das Objekt kann wie auf ein Array zugegriffen werden. Wird auf das entsprechende Objekt mit einem String-Index zugegriffen, so wird der entsprechende Wert wie in values definiert der ausgewählten Zeile zurückgegeben. Wird mit einem numerischen Index zugegriffen oder das Objekt iteriert, so wird die entsprechende Zeile zurückgegeben, deren einzelne Parameter widerum per String-Index referenziert werden können.
Die Liste hat die Spalte (als Bsp) „id“, „ident“, „name“ …
Das übergibt die „id“ der aktuellen Zeile - ok
'onClick' => 'IPS_RequestAction($id, "UpdateFormField", json_encode(["field" => "openObject_FileList", "param" => "objectID", "value" => $FileList["id"]]));';
Das übergibt die ganze Zeile, aber immer nur die erst (Index 0)
'onClick' => 'IPS_RequestAction($id, "UpdateFormField", json_encode(["field" => "openObject_FileList", "param" => "objectID", "value" => $FileList[0]]));';
Möchte ich alle Elemente der Zeile übergeben, muss ich die alle einzeln aufführen
'onClick' => 'IPS_RequestAction($id, "UpdateFormField_FileList", json_encode(["id" => $FileList["id"], "ident" => $FileList["ident"], "name" => $FileList["name"]]));';
Das geht zwar, finde ich aber nicht wirklich elegant. Gibt es eine andere Lösung, die Zeile komplett zu übergeben (also wie $FileList[0] aber die aktuelle Zeile? Ich verstehe auch den Satz oder das Objekt iteriert, aus der o.g. Beschreibung leider nicht.