javascript / php не будет загружать данные для первого варианта в зависимом раскрывающемся списке

javascript php jquery

59 просмотра

2 ответа

14 Репутация автора

У меня проблема со скриптом, который частично заимствован, а частично - мой, это javascript и php, которые заполняют два раскрывающихся списка, причем параметры во втором зависят от того, что пользователь выбирает в первом. По какой-то причине он не будет загружать параметры во втором раскрывающемся списке, если в первом выбран первоначальный параметр, либо при загрузке страницы, либо если он выбран вручную (если параметры были «a, b, c, d, e»). ... и т. д., ничего не будет загружено для "а").

Я думаю, что это может быть связано с функцией готовности документа javascript, но, боюсь, я очень мало знаю о javascript. Это код JavaScript:

        $(document).ready(function () {
    $.getJSON("getOutcome.php", success = function(data)
    {
        var options = "";

        for(var i = 0; i < data.length; i++)
        {
            options += "<option value ='" + data[i].toLowerCase() + "'>" + data[i] + "</option>";
        }

        $("#slctOutcome").append(options);

        $("#slctProxy").change();
    });

    $("#slctOutcome").change(function()
    {   
        $.getJSON("getProxies.php?outcome=" + $(this).val(), success = function(data)
    {
            var options = "";

            for(var i = 0; i < data.length; i++)
            {
                options += "<option value ='" + data[i].toLowerCase() + "'>" + data[i] + "</option>";
            }

            $("#slctProxy").html("");
            $("#slctProxy").append(options);

        });

    });
});
Автор: bevc Источник Размещён: 18.07.2016 06:13

Ответы (2)


0 плюса

21 Репутация автора

Событие изменения срабатывает только при изменении выбора, а не при заполнении ;-)

Попробуйте добавить $("#slctOutcome").trigger("change");в предыдущей строке

Веселиться :-)

Автор: Mr Magnum Размещён: 18.07.2016 06:31

0 плюса

18 Репутация автора

Попробуйте ниже. Вторая функция не была вызвана в первой функции.

 $(document).ready(function () {
$.getJSON("getOutcome.php", success = function(data)
{
    var options = "";

    for(var i = 0; i < data.length; i++)
    {
        options += "<option value ='" + data[i].toLowerCase() + "'>" + data[i] + "</option>";
    }

    $("#slctOutcome").append(options);

    $("#slctOutcome").change();  //<-Here
});

$("#slctOutcome").change(function()
{   
    $.getJSON("getProxies.php?outcome=" + $(this).val(), success = function(data)
{
        var options = "";

        for(var i = 0; i < data.length; i++)
        {
            options += "<option value ='" + data[i].toLowerCase() + "'>" + data[i] + "</option>";
        }

        $("#slctProxy").html("");
        $("#slctProxy").append(options);

    });

});

});

Автор: G Wonsley Размещён: 25.08.2016 07:40
Вопросы из категории :
32x32