Tengo un programa PHP que usa formularios HTML y JavaScript para la validación. Hay un campo oculto en el formulario HTML que contiene un valor booleano que PHP establece, JavaScript valida al enviarlo y lo pasa a otra página de PHP.
Cuando traté de usar los valores booleanos de PHP para establecer el valor del campo HTML, JavaScript lo evaluó como en blanco, así que usé unos y ceros y los comparé numéricamente, y ahora funciona bien.
Mi pregunta es: ¿cuál es la mejor práctica en este escenario? ¿Cómo hago para que JavaScript lea un valor verdadero/falso en mi campo oculto HTML controlado por PHP sin usar unos y ceros? ¿O es simplemente una mala idea?
La buena noticia es que PHP y JavaScript tienen una idea similar sobre qué valores son verdaderos y falsos.
0 en PHP) será verdadera en ambos lados.0 será falso en ambos lados. Todos los demás números serán verdaderos en ambos lados. Dado que los valores de un formulario siempre serán cadenas, como señaló Quentin en su respuesta, una buena práctica podría ser usar una cadena vacía como valor falso y algo más (por ejemplo 'true' ) como valor verdadero. Pero creo que su forma de usar 0 y 1 y probar los valores numéricos es el enfoque más seguro porque no es engañoso. (Cuando alguien ve 'true' , podría pensar que 'false' también podría usarse para un valor falso.
El valor de un control de formulario siempre será una cadena.
Si desea un booleano, debe codificarlo de alguna manera y luego analizarlo de alguna manera .
Usar un 0 o un 1 es un enfoque perfectamente bueno. También podría usar true y false (que podría generar usando json_encode en el lado de PHP) y ejecutar el valor a través JSON.parse . Hay muchas otras opciones en líneas similares.