Html select form - как вызвать " динамически генерируемую опцию”
У меня есть HTML-форма вместе со скриптом, который автоматически запускает "опцию" по умолчанию (значения опций жестко закодированы).
У меня также есть автономный скрипт, который создает выбор "опций" динамически, основываясь на определенных значениях столбца в MySQL.
Проблема: при выборе из выпадающего списка из динамически генерируемого списка он ничего не "запускает" (ни ручной, ни автоматический, ручной в этом случае был бы просто хорош)
Форма, которая автоматически запускает опцию "по умолчанию".":
<form> <select name="fruit" onchange="showFruit(this.value)"> <option>Choice:</option> <option value="1">Yellow Fruit</option> <option value="2">Red Fruit</option> </select> </form> <script> window.onload = function () { var el = document.getElementsByName('fruit')[0]; el.value = 1; //Set default value el.onchange(); //trigger onchange event } function showFruit(val) { alert(val); } </script>
И код, который генерирует и отображает динамически созданный список из определенного столбца MySQL:
<? $connect = mysqli_connect('localhost', '*', '*', '*'); $sql="SELECT DISTINCT(fruit_name) AS fruit_name FROM fruit ORDER BY fruit_name ASC"; $result = mysqli_query($connect, $sql); if(mysqli_num_rows($result) > 0){ $select= '<select name="select">'; while($rs = mysqli_fetch_array($result)){ $select.='<option value="'.$rs['id'].'">'.$rs['fruit_name'].'</option>'; } } $select.='</select>'; echo $select;
Как я могу подключить функцию onload к динамически генерируемому списку "параметры"? Мне вообще не нужны никакие жестко закодированные "опции". Только динамически генерируемый. И когда я выбираю из списка, я хотел бы получить ответ/реакцию любого рода.
Что я уже пробовал:
Я пытаюсь захватить выбранный вариант с помощью следующего, но не могу заставить его работать.
if ($result->num_rows > 0) { $display = true; $select = [] while ($row = $result->fetch_assoc()) { $select[] = "<option value=\"{$row['id']}\">{$row['fruit_name']}</option>"; } }