Как отфильтровать XML данных по значениям массива в запросе - PullRequest
0 голосов
/ 27 марта 2020

Мой вопрос заключается в том, как отфильтровать набор данных xml с массивом значений. Здесь ниже jquery код и xml данные. любезно помогите решить вопрос. Я использовал функцию фильтра, хотя она не работает

JS - Код

    var data = response.results[1][0].Variant;
    var arrdata = data.split(';');
    arrdata.shift(); // *result : ["1", "2", "3"]*
    function loadfail(){
        alert("Error: Failed to Load Menu Data : XML");
        }
        $.ajax({
        url: '/Prueba/FCD/menudata/menu.xml',  
        dataType: 'xml',
        success: menu,
        error: loadfail
        });
function menu(document){
                $(document).find("variant")
                .filter(function () {
                    return $(this).find('value').text()==arrdata
                })
                .each(function () {
                    var variant_Label = $(this).find('text').text();
                    var variant_Value = $(this).find('value').text();
                    $('#variant_model').append(
                   '<option value="'+ variant_Value + '">' + variant_Label + '</option>'
                    );
                })
            }

XML - Данные

<menu>
<variant>
    <value>1</value>
    <text>12 pa</text>
</variant>
<variant>
    <value>2</value>
    <text>30 pa</text>
</variant>
<variant>
    <value>3</value>
    <text>40 pa</text>
</variant>
<variant>
    <value>4</value>
    <text>50 pa</text>
</variant>
</menu>

1 Ответ

0 голосов
/ 04 апреля 2020

Данные XML загружаются и фильтруют значение Dynami c и присваивают его.

$("#variant_model").empty()

                    var data = response1.results[1][0].Variant;
                    var arrdata = data.split(';');
                    arrdata.shift();
                    function loadfail() {
                        alert("Error: Failed to Load Menu Data : XML");
                    }
                    $.ajax({
                        url: '/Prueba/FCD/menudata/menu.xml',
                        success: menu,
                        error: loadfail
                    });
                    console.log(arrdata);

                    function menu(document) {
                        var array2 = arrdata;
                        var array1 = []
                        $(document).find("variant").each(function () {
                            var text = $(this).find('text').text();
                            var value = $(this).find('value').text();
                            var combo = { text, value }
                            array1.push(combo)
                        })
                        array1 = array1.filter(function (item) {
                            return array2.includes(item.value);
                        })

                        array1.forEach(function (item) {
                            $("#variant_model").append($("<option></option>").val(item.value).html(item.text));
                        })
                        $('#variant_model option[value="' + response.item[0][0].Variant + '"]').attr('selected', true);

                    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...