Pedí consejo sobre cómo implementar un cambio en un formulario HTML con un elemento <select> completado desde una llamada a la base de datos que ahora tiene demasiados elementos. Esto está basado en PHP. La sugerencia fue usar una biblioteca JS, y específicamente Specialize.js.
¡Pero no puedo hacer que funcione ninguna funcionalidad! Por favor ayudenme a corregir mis estúpidos errores y/o novatos...
<?php require_once __DIR__ . '/vendor/autoload.php'; include './inc/functions.php'; $players = getPlayers(); // RETURNS ID & NAME include_once './inc/header.php'; ?> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.13.5/js/selectize.min.js"></script> <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.13.5/css/selectize.bootstrap5.min.css" /> <script type='text/javascript'> var jsPlayers = <?php echo json_encode($players); ?>; </script> <form action="/scoreRound" method="post" class="form" role="form" name="addRoundForm" id="addRoundForm" autocomplete="on"> <div class="container-fluid"> <div class="row"> <div class="col-md-3 text-center"> <h6>Select Player</h6> <select class="form-control" name="playerId" id="playerId" onchange="selectPlayer(this.value)"> <!-- THIS IS TO REPLACE - BUT SHOWING ORIGINAL PHP-BASED CODE <option value="default" selected>Select Name</option> <?php foreach ($players as $player) { echo "<option value=".$player['_id'].">".$player['name']."</option>"; } ?> --> </select> </div> </div> </div> <!-- THERE ARE MORE ROWS AND HTML FIELDS FOR USER ENTRY --> </form> <script> $("#playerId").selectize({ create: true, options: [ // THIS SHOULD ACTUALLY BE THE $players or `jsPlayers` array {value: 1, name: "Dan"}, {value: 2, name "Aaron"} ] placeholder: "Start typing name...", onChange(value) { console.log(value); } }); </script>