Ist das "undefined" dann ein "= undef" oder nochmal das "= []" wie in
dem "$prefs->init" in der "Plugin.pm"?
Gleich nach dem $prefs->init kannst du das ergänzen:
$prefs->setValidate( 'array', qw(huebridges) );
Das sollte dafür sorgen, dass der Versuch, etwas anderes zu speichern,
fehl schlägt. Das greift dann auch nicht nur im Settings Handler,
sondern auch wo auch immer sonst noch du den Wert ändern willst.
Welchen "Wert", den ich entfernen soll/kann meinst Du denn?
"$param->{'saveSettings'}"?
Ja, innerhalb des discoverSoundBridges Statements machst du das:
delete $params->{saveSettings}
Beachte allerdings, dass dies dann wirklich nichts speichert, auch falls
du da was geändert hättest.
Du musst den Loop also über eine
Variable steuern, die immer übergeben wird. Baue also noch einen <input
name="wasauchimmer[% loop.index %]"... ein, den du dann für den Loop im
Handler verwendest.
Der neue Input: Ist das quasi ein "gesperrter/anzeigender" Text-Input?
Hier hänge ich evtl. gerade mit dem Wissen über die Formulare... Der
Falls es da wirklich keinen Input gibt (ausser dem Submit Button), dann
kannst du einen <input type="hidden"...> erstellen. Das wird nicht
angezeigt, beim Absenden aber mitgeschickt.
https://wiki.selfhtml.org/wiki/HTML/Formulare/Versteckte_Elemente
"name=" teilt doch m. E. dem Perl-Teil mit, was er beim "Submit"
ausführen soll. Letztlich müsste ich doch dann mit einem Drücken zwei
Variablen übergeben? Gibt es da ein Beispiel im LMS Code?
Beim Drücken egal welches Submit Buttons werden alle Formularfelder
übergeben, plus der Wert des Buttons, den du gedrückt hast. Auf dem
Server hast du aber einen Loop, welcher alle Buttons durchlaufen soll.
Aber du kriegst nur den einen zurück, den du drückst. Deshalb ist die
Schleife nach dem ersten Durchgang erledigt, ohne dass du deinen Button
angetroffen hättest. Alles unklar?
Du machst also in etwa:
if button0...
if button1...
if button2...
Da die Bedingung der Schleife aber nach button0 schon abbrechend wird
(da nur ein Button definiert ist), kommst du nie zu button1. Daher musst
du dafür sorgen, dass du Variablen für alle Devices hast. Das erledigst
du mit der versteckten Variable. Auf dem Server loopst du dann nicht
mehr über connectHueBridge$i, sondern meinVersteckterWert$i.
--
Michael
_______________________________________________
slimserver-de mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/slimserver-de