Есть ли способ динамически изменять выбранные формы в HTML? - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть веб-приложение, в котором пользователь может изменить описания определенных событий для их использования в туристических приложениях android.

looks like I can't upload images...but the link works, this is my form

Дело в том, что на данный момент форма имеет 2 поля, поле выбора типа со всеми событиями в базе данных и текстовое поле, в которое пользователь записывает новое описание.

Теперь, хотя этого достаточно, когда приложение будет завершено и выпущено в паблике c, в базе данных будут сотни событий. Итак, я подумал о том, чтобы сделать так, чтобы было 3-е поле под названием «МЕСТО». И как только место выбрано, форма выбора событий изменится, и будут показаны только события, связанные с этим местом (пример: Botani c Garden будет показывать только данные средневековой ярмарки, а не, скажем, пьесу Гамлет).

¿Возможно ли это с JS?

Вот код, который я использую:

<html>
   <head>
   <link rel="stylesheet" href="style_form.css">

   <script type="text/javascript">
       //auto expand textarea
       function adjust_textarea(h) {
           h.style.height = "20px";
           h.style.height = (h.scrollHeight)+"px";
       }
   </script>
</head>

   <body>

       ENTRE
   <form class="form-style-4" action="update.php" method="post">
       <br>
   <label for="id"><span>Elija un evento a cambiar</span>
   <br>
     <select name="id">

         <?php

           $server = I;
           $usuario = WONT;
           $pass = SHOW;
           $database= THIS;

           $mysqli = new mysqli($server, $usuario, $pass, $database);

           $query = $mysqli -> query ("SELECT * FROM INFORMACION_EVENTOS");

           while ($valores = mysqli_fetch_array($query)) {
               echo '<option value="'.$valores[id].'">'.$valores[titulo].'</option>';
           }

       ?>
     </select>
     <br>
     </label>
     <label for="descripcion">
     <span>Descripcion</span>
     <br>
     <textarea name="descripcion" onkeyup="adjust_textarea(this)" required="true" placeholder="Max 50 caracteres"></textarea>

     </label>
     <input type="submit" value="Submit">
   </form>
   </body>
</html>

1 Ответ

0 голосов
/ 21 апреля 2020

Да. Это одна из основных целей Javascript в браузере - манипулирование объектной моделью документа (DOM). Есть два способа сделать это go: вы можете встроить данные в Javascript, возможно, динамически генерируя все или часть Javascript на стороне сервера по мере доставки страницы, создавая объекты или массивы различные опции, которые вы можете иметь sh, и включение их в Javascript, отправленный в браузер. Этот способ становится громоздким и громоздким по мере увеличения объема данных.

Другой вариант - использовать AJAX и серверный API, чтобы страница могла запрашивать параметры при изменении выбора. Это то, как большинство сайтов управляют этим, но это может быть довольно трудоемким, поскольку требует кода как на сервере, так и на клиенте, с определенным API для взаимодействия.

Что касается физической манипуляции значениями в элемент <select>, вы можете написать что-то самостоятельно, подобно этому ответу StackOverflow , или вы можете использовать библиотеку DOM, такую ​​как jQuery или Angular, et c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...