хорошо, я не знаю, является ли это правильным способом сделать это. Если нет, пожалуйста, дайте мне пример того, как это сделать. Как мне получить данные в JS и отправить их в HTML?
JS
$(document).ready(function() {
var choosenYear = $('#choose_year');
$("#choose_year").select2({
data: [{
id: 0,
text: '2015'
}, {
id: 1,
text: '2014'
}],
val: ["0"]
}).select2('val', 0);
// Start Change
$(choosenYear).change(function() {
var choosenYear = $(choosenYear).select2('data').id;
$('#choosen_year').val(choosenYear);
}); //Change
});
HTML
<form class="form-inline well col-md-8" id="form-choose_usr" action="#" method="post" enctype="multipart/form-data">
//This is what i POST
<div>
<input type='hidden' class='col-md-4' id='choose_usr_email' name='choose_usr_email'>
</div>
<!-- Select2 choose_year -->
<div>
<input type='hidden' class='col-md-2' id='choose_year' name='choose_year'>
</div>
<!-- Select2 choose_month -->
<div>
<input type='hidden' id='choosen_year' name='choosen_year'>
<input type="submit" class="btn btn-info pull-right" value="Hämta" />
PHP
//And this is how i fetch it
$posted_choosen_year = $_POST['choosen_year'];
echo $posted_choosen_year;
Функция изменения jquery не является событием propper:
$("#choosenYear").on("select2:select", function (e) { do stuff here... });
Сделаю. Увидеть http://select2.github.io/examples.html под «СОБЫТИЯ» для больше. Есть также запущенные образцы, которые предоставят, как использовать эту вещь.
Я исправил вашу скрипку и запустил ее так:
$(document).ready(function() {
function log(text) {
$('#chosen_year').append(text + '<br>');
}
$('#choose_year').select2()
.on("change", function(e) {
log(this.value);
})
});
Так что я не совсем понял, как это решить. Поэтому я изменил код, чтобы иметь статические значения HTML вместо хранения значений в файле JS.
HTML
<form class="form-inline well col-md-8" id="form-choose_usr" action="#" method="post" enctype="multipart/form-data">
<select class="col-md-4" id="choose_year" name="choose_year" required>
<option></option>
<option value="2015">2015</option>
<option value="2014">2014</option>
</select>
<input type="submit" class="btn btn-info pull-right" value="Hämta" />
</form>
JS
$(document).ready(function(){
$('#choose_year').select2({
placeholder: 'Välj år..',
minimumResultsForSearch: -1
});
});
PHP
$posted_chosen_year = $_POST['choose_year'];
echo $posted_chosen_year;
Хорошо, используя эту скрипку, которую я только что создал, чтобы проверить: http://jsfiddle.net/yL6g087x/1/
Если показывает, что объект
$("#choosenYear").select2("data")
Не существует … так что я подумал, что проконсультируюсь с руководством .. rtm .. и их пример потерпит неудачу .. на двух уровнях …. Их скрипка: http://jsfiddle.net/platypusman/xDUUg/
Во-первых, возвращает 404 для файлов js и css … поэтому я связал их с текущими … и пример все еще не работает .. Похоже, что плагин select2 не работает в своей текущей версии ..
Я могу ошибаться, но это то, что я нахожу из их приведенного примера