Javascript и создание динамически формы - PullRequest
0 голосов
/ 11 июля 2011

У меня есть форма регистрации, в которой я хочу, чтобы пользователь выбирал элемент из первого выбора, чтобы динамически создавать второй выбор с элементами из базы данных, которые совместимы с первым выбором.Например, у меня есть 2 списка выбора, первый с уроками, а второй с профессорами. Когда я выбираю из первого выбора урока, во втором списке выбора должны быть только профессора этого урока.Я использую JSP, Java, и я хочу, чтобы избежать AJAX это возможно?Спасибо!

Ответы [ 3 ]

2 голосов
/ 11 июля 2011

Да, это возможно.

Однако без AJAX вам придется загружать все данные со страницы.Это означает сохранение списка профессоров, связанных с каждым уроком, либо в массиве Javascript, либо в скрытом HTML-элементе, из которого вы сможете впоследствии извлечь данные.

1 голос
/ 11 июля 2011

Да, это возможно,

создать два поля выбора со списком преподавателей и уроков и скрыть их по умолчанию.Поэтому прикрепите событие «onchange» в своем первом окне выбора, когда профессора выбирают, отображают список с профессорами, когда выбираются уроки, показывают список с уроками и скрывают профессоров.например,

<select id="cbOne" onchange="show(this);">
<option value="0">Select</option>
<option value="1">Professors</option>
<option value="2">Lessons</option>
</select>

<select id="cbLessons" style="display: none;">
... your list
</select>
<select id="cbProfessors" style="display: none;">
... your list
</select>

Это метод для JavaScript-шоу

<script language="javascript">

    function show(el)
    {
      var professors = document.getElementById('cbProfessors');
      var lesssons = document.getElementById('cbLessons');
       if(el.value == "0")
       {
         professors.style.display = 'none';
         lessons.style.display = 'none';
    }
       else if(el.value == "1")
       {
         professors.style.display = '';
         lessons.style.display = 'none';
       }
       else if(el.value == "2")
       {
         professors.style.display = 'none';
         lessons.style.display = '';
       }
    }

</script>

Я надеюсь, что это поможет вам.

1 голос
/ 11 июля 2011

Вы можете избежать ajax, используя одно из этих решений:

  1. Загружайте всех профессоров всех уроков при отображении формы и сохраняйте их в некоторой структуре JavaScript. Когда выбор урока изменится, получите связанных профессоров из этой структуры JavaScript. Это может означать загрузку слишком большого количества данных одновременно, хотя
  2. Когда выбор уроков изменится, отправьте форму и переотобразите ее с заполненным полем выбора профессоров.

Оба решения нуждаются в JavaScript, и я действительно не понимаю, что вы получите, если не используете AJAX. Вы можете полностью избежать JavaSCript со вторым решением, но пользователю придется нажать кнопку отправки, чтобы загрузить вторую форму.

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