2015-12-01 3 views
0

Вот мой статический HTML:Bootstrap выбрать раскрывающийся список динамический?

<select name="codici_transazioni" class="selectpicker" id="codici_transazioni"> 
    <option value="dsjkcbs">dsjkcbs - <i>Email, Facebook</i></option> 
    <option value="scgwfsd" selected class="normaleSelect">scgwfsd - <i>Facebook</i></option> 
    <option value="stdstyd">stdstyd - <i>Twitter</i></option> 
</select> 

Это кусок кода, взятый из контекста модальной. Я хочу, чтобы мой выбор был заполнен результатом Ajax, выполненным в .php-файле, который возвращает результаты из моей базы данных MySQL.

Теперь все части Ajax и DB работают, а что нет, когда я пытаюсь заполнить этот <select> через jQuery после того, как Ajax преуспел, результат будет таким же, как и по умолчанию выше!

Вот мой JQuery:

$('#codici_transazioni').html(""); 
for (var i = received.length - 1; i >= 0; i--) { 
    <other DOM loading> 
    $('#codici_transazioni').append("<option value=" + temp_code_transaction + "> " + temp_code_transaction + "- <i>" + temp_type_transaction+ "</i></option>"); 
} 

я заметил, с помощью Chrome (так после загрузки страницы), что некоторые ДИВ были созданы после того, как выбрать.

enter image description here

Я знаю, что это делается с помощью Bootstrap, но как я могу перезагрузить создание этого кода после того, как Ajax выполнил, чтобы сделать выбор выпадающего динамическим?

ответ

5

Если вы используете bootsrap-select вы также должны запустить метод обновления() после того, как вы приложили новые варианты выбора

.done(function(data){ 
    'appending process'... 
    $('#codici_transazioni').selectpicker('refresh'); 
}) 
+0

Спасибо за ответ. – enriquo

0

Использование Ajax:

$('#codici_transazioni').html('') 
     $.ajax({ 
      url: '/path/to/phpfile', 
      type: 'POST', 
      dataType: 'json', 
     }) 
     .done(function(data) { 
      var output = ''; 
      $.each(data,function(index, el) { 
       output += '<option class="results" value="'+el.valueToPass+'">'+el.valueToPass+'</option>'+ 

      }); 
      $('#codici_transazioni').append(output) 
     }) 
     .fail(function() { 
      console.log("error"); 
     }) 

Я не могу быть более pecific, потому что вы не отправлял файл PHP и вы не говорите, каким образом вы хотите вызвать результат.

ПРИМЕЧАНИЕ. Будет лучше, если вы предоставите существующим параметрам класс «результатов» или что угодно, чтобы вы могли очистить существующие параметры, прежде чем загружать новый.

Вместо использования:

$ ('# codici_transazioni') HTML ('')

Вы можете сделать:

$. (». Результаты) удалить()

.
+0

Это не решает мою проблему, потому что: - да, я не размещал PHP или MySQL-запрос, а потому, что, как я уже сказал, это просто проблема с отображением данных. - как я уже сказал, он работает. – enriquo

+0

Ciao @synapse. Чтобы помочь вам, я должен видеть, что эти файлы отслеживают поток ваших данных и проверяют, правильно ли вы обращаетесь (и выводите) все. Но это зависит от вас. Буду рад помочь! – Franco

+0

Я все равно благодарю :) – enriquo

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