2015-12-03 2 views
0

Мне нужно обновить ячейку таблицы html, которая создается с использованием шаблона Django для цикла, как только выбор pickselect изменился. Мой HTML для таблицы:Шаблон Django не обновляется для цикла после выбора pickerselect

 <tbody> 
      {% for task in tasks %} 
      <tr> 
       <td>{{ task.taskNumber }}</td> 
       <td>{{ task.taskDescription }}</td> 
       <td><div name="dataOutput">{{task.thisPeriod}}</div></td> 
      </tr> 
      {% endfor %} 
     </tbody> 

Мой HTML для pickerselect:

<select name="selValue" class="selectpicker"> 
     <option value="1">Current Period ({{currentPeriod}})</option> 
     <option value="2">Previous Period ({{previousPeriod}})</option> 
    </select> 

Моя JavaScript:

<script language="JavaScript"> 
    $(function() { 
     $('.selectpicker').on('change', function(){ 
     var selected = $(this).find("option:selected").val(); 
     var updateArray = document.getElementsByName("dataOutput"); 
     for (var i = 0; 1 < updateArray.length; i++) { 
      if (selected == 1) { 
       updateArray[i].innerHTML = "{{task.thisPeriod}}"; 
      } else if (selected == 2) { 
       updateArray[i].innerHTML = "temp"; 
      } 
     } 
     }); 
    }); 
    </script> 

На данный момент обновление значения строки таблицы с заполнителем «Темп «когда выбор 2 сделан, но когда я вернусь к выбору 1, в таблице не появятся значения. Я предполагаю, что это потому, что шаблон Django для цикла не обновляется, поэтому он не знает, как визуализировать для конкретной задачи в цикле {{task.thisPeriod}}. Я просмотрел ряд вопросов об обновлении div с помощью javascript, но ничего не было эффективным ... Я всегда получаю тот же результат пустых значений в таблице.

ответ

0

Это очевидно, но вы не можете сделать это просто так, потому что javascript не записывает контекст django , который вы передали шаблону. Вы должны использовать ajax для передачи выбранного значения в отдельный метод в views.py, там вы узнаете данные и вернете их в javascript, затем визуализируйте div с новыми данными.

+0

Спасибо, я подумал, что это что-то такое. Я новичок в ajax/javascript, поэтому не могли бы вы привести пример? – gumbynr

+0

Есть много примеров онлайн. Я беспорядочно googled и нашел http://stackoverflow.com/questions/20306981/how-do-i-integrate-ajax-with-django-applications. Очевидно, вам также нужно прочитать jquery ajax doc: http://api.jquery.com/jquery.ajax/ –