Webfront - User Variable Typ Float, Wert ändern im Webfront

Hallo und ein Gutes neues Jahr 2018 allen hier :slight_smile:

Und eine Frage habe ich dann auch schon gleich… :o
Ich steh wohl auf der Seife und suche nun schon ein Weilchen in der Community und IPS Hilfe.

Also wenn ich eine Variable vom Typ Bool anlege, mit einem Aktionsskript der diese An/Aus schaltet, dann kann ich direkt im Webfront bzw. auch in der Android App diese Variable Ein bzw. Aus schalten.

Jetzt habe ich aber eine User Variable vom Typ Float und möchte direkt im Webfront/Android-App dessen Wert eingeben können. Ich schaffs nur leider nicht und bitte hiermit um Hilfe.

Danke schon mal.

Das geht nicht. Du müsstest dafür ein String Feld nehmen und umkonvertieren.

paresy

Danke. Das reicht vollkommen aus :slight_smile:

Eine Frage hätte ich noch bezüglich Android App. Die Funktion „WFC_PushNotification“ funktioniert einwandfrei. Jetzt würde ich gerne noch die Möglichkeit haben, an die Android-APP ein Popup zu schicken.

Beispiel: Benutzer gibt einen ungültigen Wert ein, dann möchte ich dafür eine kurze Meldung einblenden (oder bis zum wegklicken). Dafür ist die Push Methode nicht geeignet, weil das nicht passt und den User nicht unbedingt beeinflußt: Wenn im Hintergrund eine Notification im Android erscheint. Die kann man theoretisch auch erst später sehen und dann ergibt das keinen Sinn mehr.

Die Funktion „WFC_SendNotification“ sendet nur an das Webfront. Nicht an die Android App.

Außerdem wäre es klug, wenn man die „Geräte-ID“ mit angeben kann. Denn wen sonst interessiert eine Meldung „~falsche Werteingabe~“, außer demjenigen der gerade am Handy einen Wert eingibt.

Gibt es denn da schon eine Möglichkeit, nur finde ich sie nicht?

Du kannst einfach im AktionsSkript einen Fehler mit Echo ausgeben.
Das sieht dann nur das Webfront wo gerade der Wert eingegeben wurde.
Bei der App sollte das auch aufpoppen.
Michael

Danke. Das geht ja einfacher als erwartet :slight_smile: :slight_smile: Ihr seid die Besten.

Bevor ich nun in einem PHP Forum frage, vielleicht kann mir auch hier schnell geholfen werden.
In VBCrsipt würde ich eine Fehlerbehandlung easy gesagt so machen, Beispiel…

On Error Resume Next
Err.Clear
MeineVariable = 5 / 0
If Err.Number <> 0 Then MsgBox Err.Description ("Division by zero")
Err.Clear

In PHP mache ich jetzt…

$Eingabe = floatval($_IPS['VALUE']);

Wie fange ich hier ab, falls die Konvertierung schief läuft, weil der Benutzer quatsch eingab.

Ich finde allerhand zu Errorhandling in PHP. Bin mir aber unsicher was der einfachere Weg ist. Gibt es da auch so was wie „Clear“ /reset. Weil etwa „error_get_last“ ein Array zurückgibt, was aber nicht zwangsläufig gerade passiert sein muss.

In VBScript mache ich das immer mit „Err.Clear“ gefolgt von „Err.Number <> 0“ - dann weiß man sofort ob ein Fehler passierte und kann reagieren.

Fehlerbehandlung wird da nicht viel nützen, PHP konvertiert das knallhart und wenn da 0 rauskommt.
Du musst also selber prüfen ob der Wert OK ist.
Zum Beispiel mit PHP: preg_match - Manual prüfen ob nur Zahlen und Punkt enthalten ist.
Michael
Edit: Oh, is_numeric unterschlage ich immer :wink:

Ich würde einfach vorab prüfen, ob im Textfeld eine Zahl steht. Dafür kannst du beispielsweise den Befehl is_numeric benutzen: PHP: is_numeric - Manual

Damit kannst du dann vorab prüfen, ob dein String eine Zahl ist. Falls ja kannst du ganz normal weitermachen, ansonsten brichst du mit einer Fehlermeldung via echo ab.

Dann ist es mir jetzt klar was zu tun ist.

Danke euch für die Hilfe :slight_smile: :slight_smile: