2012-01-05 3 views
0

У меня есть раскрывающийся список в моей форме, который на самом деле помогает генерировать запросы 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? и будет ли это правильной методологией для реализации сценария, что я хочу? Я должен помнить о распространении полей параметров после вызова из контроллера после получения результатов.

ответ

0

Я не уверен, что понял ваш вопрос, но, по крайней мере, мои знания о вашем запросе говорят, что для создания таких форм лучше использовать функции jQuery remove и append. Вы можете создать любой элемент управления динамически и установить их под контролем с помощью идентификатора, который вы установили для них. Это просто, как выпить стакан воды!

Remove, Append

Поправьте меня, если мой ответ неверен.

Смежные вопросы