Select2 AJAX的实际示例

时间:2018-10-08 11:11:21

标签: jquery jquery-select2

我试图在文档中找到一个使用AJAX的 Select2 v4.0.5 的简单示例,因为Javascript和jQuery不是我的事。但是每次我发现服务器端部分都不见了。 有这么多种不同的方式:processResults。 我无法将代码放入jsfiddle.net。所以这是我的.zip文件: https://framadrop.org/r/JgSTSr1V3h#s0CBgl4eZO80m6LoU8+91nsOi5RlK7kybvaTtCQuR+8=

ajax php文件就在这里,例如,它返回一个ID和数组中的文本。 如果删除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显示回选择对话框。

谢谢。

screenshot search

我只是在此处嵌入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>&nbsp;</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>

0 个答案:

没有答案