Booleans in versteckten Feldern darstellen

9

Gibt es eine empfohlene Möglichkeit, boolesche Felder in ausgeblendeten HTML-Formularen darzustellen?

Ist es normalerweise eine Frage der Existenz, oder sollte man 1/0 oder "wahre" / "falsche" Zeichenfolgen verwenden?

    
Yarin 22.09.2013, 18:55
quelle

2 Antworten

1

Wäre nützlich, wenn Sie PHP verwenden:

test.php? test = false (erstellt mit http_build_query( array( 'test'=>'false' ) ) ) :

var_dump( $_REQUEST['test'] ); //string(5) "false"

var_dump( (bool)$_REQUEST['test'] ); //bool(true)

var_dump( $_REQUEST['test'] == FALSE ); //bool(false)

var_dump( $_REQUEST['test'] == "false" ); //bool(true)

-

test.php? test = 0 (erstellt mit http_build_query( array( 'test'=>FALSE ) ) ) :

var_dump( $_REQUEST['test'] ); //string(1) "0"

var_dump( (bool)$_REQUEST['test'] ); //bool(false)

var_dump( $_REQUEST['test'] == FALSE ); //bool(true)

    
MikeStack 07.03.2014 13:29
quelle
0

Diese Logik kann mit Affe-Patches der Variablen entsprechend ihrem String-Wert implementiert werden. In diesem Fall hängt die empfohlene Methode zur Ermittlung des Booleschen Werts davon ab, wie diese Werte von der Serverseite behandelt werden. Weitere Informationen finden Sie in Beispiel in Ruby .

Sie können jedoch das Affepatching mit folgendem Ansatz vermeiden:

Am wahrscheinlichsten würden alle Server mit 'true' value funktionieren, um True darzustellen (tatsächlich gibt es keine Probleme, solange Sie direkt mit string arbeiten, aber für Konvention ist das klar verständlich) und leere Zeichenfolge '' um False darzustellen (weil die leere Zeichenfolge '' in den meisten Fällen als falsch behandelt wird, können Sie dazu Geben Sie [type = hidden] als Platzhalter für den versteckten Wert ein und weisen Sie den entsprechenden Wert zu.

Um versteckte Eingabe mit Falsy zu definieren, müssen Sie value -Attribut auf die leere Zeichenfolge '' setzen, alle anderen Werte werden als Wahrlich behandelt.

%Vor%

Auf diese Weise wird request.POST['is-truly'] value auf dem Server höchstwahrscheinlich als False behandelt (weil die leere Zeichenkette '' Falsy ist, aber Sie müssen das überprüfen auf Serverseite)

HINWEIS: Es wird nicht empfohlen, eval zum Überprüfen des Variablentyps zu verwenden.

    
Andriy Ivaneyko 16.03.2016 20:55
quelle

Tags und Links