« Zurück zu Produkt

Dokumentation

IPS_UpdateFormField

 bool IPS_UpdateFormField (string $Feld, string $Parameter, mixed $Wert, string $SessionID) 

Parameterliste

Feld

Name des zu ändernden Formularfeldes

Parameter

Name des zu ändernden Parameters

Wert

Neuer Wert des Parameters

SessionID

SessionID des geöffneten Aktionsformulars

Rückgabewert

Konnte die Funktion erfolgreich ausgeführt werden, liefert sie als Ergebnis TRUE, andernfalls FALSE.

Beschreibung

Die Funktion setzt den Parameter Parameter des Formularfeldes mit dem Namen Feld im geöffneten Formular einer Aktion auf den Wert Wert. Das Formular wird über die SessionID identifiziert. Innerhalb der Formularfelder einer Aktion, z.B. in "onChange", steht die SessionID in der Variable $id zur Verfügung.

Die Funktion ist das Gegenstück zur Modulfunktion UpdateFormField ($this->UpdateFormField), welche Formularfelder in den geöffneten Konfigurationsformularen einer Instanz verändert. Da das Formular einer Aktion zu keiner Instanz gehört, wird es stattdessen über die SessionID angesprochen.

Die Änderung wird als Nachricht an die verbundenen Clients, z.B. die Konsole, gesendet. Es wird nicht geprüft, ob ein Formular mit dieser SessionID geöffnet ist oder das Formularfeld existiert. In diesem Fall hat der Aufruf keine Wirkung, die Funktion liefert trotzdem TRUE.

Warning

Es ist nicht möglich die Parameter name und type von Formularfeldern zu verändern. Weitere nicht veränderbare Parameter sind in der jeweiligen Dokumentation aufgeführt.

Warning

Als Wert sind nur Boolean, Integer, Float und String möglich. Bei komplexen Parametern, also Listen oder Objekten, muss der neue Wert JSON-kodiert übergeben werden.

Beispiel

// Dynamisches Formular einer Aktion (Eintrag "form"): Wird eine andere Statusvariable ausgewählt,
// wird das Ziel des Feldes "ACTION" im geöffneten Aktionsformular angepasst. $id enthält die SessionID
return [
    [
        'type'     => 'Select',
        'name'     => 'IDENT',
        'caption'  => 'Status Variable',
        'options'  => $options,
        'onChange' => 'IPS_UpdateFormField("ACTION", "targetID", IPS_GetObjectIDByIdent($IDENT, ' . $_IPS['TARGET'] . '), $id);'
    ],
    [
        'type'    => 'SelectAction',
        'name'    => 'ACTION',
        'caption' => 'Action'
    ]
];
Haben Sie noch Fragen?