У меня есть раскрывающийся список в моей форме, который на самом деле помогает генерировать запросы mysql db на лету на основе типа запроса. Например, если мой запрос в раскрывающемся списке в файле fetchYourDetails, тогда в форме появится текстовое поле, в котором будет указано мое имя. Однажды я ввожу свое имя и нажимаю на сгенерировать, он закроет запрос и запустит его в фоновом режиме php.Создайте поля динамической формы на основе выпадающего меню, jQuery, php
Вроде бы у меня около 4/5 типов запросов, и это может увеличиться в будущем. Здесь у меня проблема с моей текущей реализацией.
В настоящее время я использую следующую форму: форма, в которой у меня есть раскрывающийся список, и все поля параметров (скрытые) для начала. Теперь, используя функцию onchange() в js, я покажу некоторые конкретные строки параметров на основе выбранной опции выпадающего списка и скрыть остальные.
так вот как мой HTML код выглядит следующим образом:
<form>
<table>
<tr id='dropdown'>
<td>
<select id='select_options' onchange ="javascript:updateCustomQueryFields();">
<option value='getyourdetails'></option>
<option value='getyourbikedetails'></option>
<!-- so on -->
</select>
</td>
</tr>
<tr style='display:none'>
<td>
<!-- one field -->
<!-- create the generate option -->
</td>
</tr>
<tr style='display:none'>
<td>
<!-- one field -->
<!-- create the generate option -->
</td>
</tr>
<!-- so on -->
</table>
</form>
и моя OnChange функция выглядит следующим образом:
function updateCustomQueryFields()
{
val=$('#select_options').val();
//hideallfieldsfirst
if(val=='getyourdetails')
{
//show one field
}
else if(val=='getyourbikedetails')
{
//show one field
}
}
до сих пор так хорошо, теперь, когда я нажимаю на опцию Использовать, он выполнит запрос и извлечет данные из db и отобразит их в div результатов ниже формы.
Итак, во время отображения результатов также необходимо скрыть некоторые поля и отобразить другие в представлении на основе параметров, заданных в контроллере. Таким образом, ряд операторов if-else, вероятно, также увеличится, когда мы добавим еще несколько параметров.
Так что я хочу, это механизм, с помощью которого мы будем генерировать поля параметров «на лету», например, если тип запроса «getyourdetails», необходимо создать только поле имени и оставить все поля должны быть удалены в функция backend onchange.
Как это можно достичь с помощью jquery? и будет ли это правильной методологией для реализации сценария, что я хочу? Я должен помнить о распространении полей параметров после вызова из контроллера после получения результатов.