Necesito obtener la clave y el valor de un JSON para agregarlo en una opción creada en JS.
En mi html, acabo de agregar una entrada oculta para obtener datos en JS como este:
<input type="hidden" value="<?= htmlspecialchars(json_encode($availableFlag)) ?>" id="list-flag"> $availableFlag está definido en mi php justo arriba:
$availableFlag = App::getAvailableTags();Y esta función está definida en otra clase y dame eso:
public static function getAvailableTags(): array { return array_merge(self::$availableTags, [ Tag::TAG_OUT_UE => Tag::TAG_TYPE_ERROR, // Those variables are const Tag::TAG_PHYSICAL_TICKET => Tag::TAG_TYPE_WARNING, // defined in the Tag class ]); }Entonces, volviendo a mi problema principal. Estoy creando opciones dinámicas basadas en la longitud de mi matriz.
const listFlag = JSON.parse(oid("list-flag").value); for (let i = 0; i < listFlag.length; i++) { filterFlagSelect.options[filterFlagSelect.options.length] = new Option(listFlag[i], listFlag[i]); } Pero listFlag[i] no está definido y no sé qué hacer porque las claves en listFlag nunca son las mismas.
Este es mi contenido en listFlag
{ "out-ue": "error", "physical-ticket": "warning" }Y listFlag.length parece tener problemas también