Я попытался найти простой рабочий пример Select2 v4.0.5 с AJAX в документации, так как Javascript и jQuery не мои вещи.Но каждый раз я обнаруживал, что серверная часть отсутствует.Существует так много разных способов: processResults.Я не смог поместить свой код в jsfiddle.net.Итак, вот мой файл .zip: https://framadrop.org/r/JgSTSr1V3h#s0CBgl4eZO80m6LoU8+91nsOi5RlK7kybvaTtCQuR+8=
Файл ajax php приведен в качестве примера, он возвращает идентификатор с текстом в массиве.Если вы удалите select2, вы увидите основные параметры выбора, которые я хотел бы отобразить вначале.
Пример поиска ключевых слов:
optique возвращает:
string(38) "[{"id":3,"text":"Sciences physiques"}]"
chimie возвращает:
string(156) "[{"id":4,"text":"Sciences chimiques"},{"id":5,"text":"Sciences de la Terre et sciences connexes de l'environnement"},{"id":6,"text":"Sciences biologiques"}]"
Мне нужна помощь, чтобы отобразить JSON обратно в диалог выбора.
Спасибо.
поиск по скриншоту
Я только что вставил html здесь (js, css в zip-файле выше)
<!doctype html>
<html lang="fr">
<head>
<meta name="robots" content="noindex, nofollow">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Test Discipline</title>
<link rel="stylesheet" href="vendor/bootstrap.min.css" type="text/css">
<link rel="stylesheet" href="templatetwig/css/global.min.css" type="text/css">
<link rel="stylesheet" href="vendor/select2.min.css" type="text/css">
<script type="text/javascript" src="vendor/bootstrap-switch.min.js"></script>
<script type="text/javascript" src="vendor/jquery.min.js"></script>
<script type="text/javascript" src="vendor/jquery-ui.min.js"></script>
<script type="text/javascript" src="vendor/select2.min.js"></script>
<script type="text/javascript" src="vendor/bootstrap.min.js"></script>
</head>
<body>
<form action="index.php" method="post">
<div class="col-md-12">
<div class="panel panel-xs">
<table class="table table-panel table-bordered">
<tr>
<td class="td-titre">
<strong>Discipline <span class="asterisk" id="asterisk-discipline">*</span></strong> (<a href="https://www.fnak.fr/inscription/help.php?help=frascati" target="_blank" title="Aide en ligne">*</a>)
</td>
<td colspan="3"><select name="sejour_discipline" class="form-control js-discipline-data-ajax" id="sejour_discipline" ><option value="" disabled="disabled" selected> </option><option value="1" disabled="disabled">Sciences exactes et naturelles</option><option value="1"selected>1.1 - Mathématiques</option><option value="2">1.2 - Informatique et science de l'information</option><option value="3">1.3 - Sciences physiques</option><option value="4">1.4 - Sciences chimiques</option><option value="5">1.5 - Sciences de la Terre et sciences connexes de l'environnement</option><option value="6">1.6 - Sciences biologiques</option><option value="7">1.7 - Autres sciences naturelles</option><option value="2" disabled="disabled">Sciences de l'ingénieur et technologiques</option><option value="8">2.1 - Génie civil</option><option value="9">2.2 - Génie électrique, électronique, ingénieurie informationnelle</option><option value="10">2.3 - Génie mécanique</option><option value="11">2.4 - Génie chimique</option><option value="12">2.5 - Génie des matériaux</option><option value="13">2.6 - Ingénierie médicale</option><option value="14">2.7 - Génie de l'environnement</option><option value="15">2.8 - Biotechnologie environnementale</option><option value="16">2.9 - Biotechnologie industrielle</option><option value="17">2.10 - Nanotechnologies</option><option value="18">2.11 - Autres domaines techniques et technologiques</option><option value="3" disabled="disabled">Sciences médicales</option><option value="19">3.1 - Médecine fondamentale</option><option value="20">3.2 - Médecine clinique</option><option value="21">3.3 - Sciences sanitaires</option><option value="22">3.4 - Biotechnologie médicale</option><option value="23">3.5 - Autres sciences médicales</option><option value="4" disabled="disabled">Sciences agricoles</option><option value="24">4.1 - Agriculture, sylviculture et pêche</option><option value="25">4.2 - Zootechnie et science laitière</option><option value="26">4.3 - Sciences vétérinaires</option><option value="27">4.4 - Biotechnologie agricole</option><option value="28">4.5 - Autres sciences agricoles</option><option value="5" disabled="disabled">Sciences sociales</option><option value="29">5.1 - Psychologie</option><option value="30">5.2 - Économie et administration des entreprises</option><option value="31">5.3 - Sciences de l'éducation</option><option value="32">5.4 - Sociologie</option><option value="33">5.5 - Droit</option><option value="34">5.6 - Sciences politiques</option><option value="35">5.7 - Géographie sociale et économique</option><option value="36">5.8 - Médias et communication</option><option value="37">5.9 - Autres sciences sociales</option><option value="6" disabled="disabled">Sciences humaines</option><option value="38">6.1 - Histoire et archéologie</option><option value="39">6.2 - Langues et littérature</option><option value="40">6.3 - Philosophie, morale et religion</option><option value="41">6.4 - Arts (arts, histoire de l'art, arts de la scène, musique)</option><option value="42">6.5 - Autres sciences humaines</option></select></td>
</tr>
</table>
</div>
</div>
</form>
<script>
$(document).ready(function () {
$(".js-discipline-data-ajax").select2({
width: "100%",
ajax: {
url: '/ajx/ajx_frascati_domaine.php',
dataType: "json",
type: "GET",
data: function (params) {
console.log(params);
return {
q: params.term, // search term
};
},
processResults: function (data) {
var arr = []
$.each(data, function (index, value) {
arr.push({
id: index,
text: value
})
})
return {
results: arr
};
},
cache: true
},
escapeMarkup: function (markup) { return markup; }
});
});
</script>
<div class="footer"></div>
</body>
</html>