Каков наилучший способ динамически загружать комбинированное окно HTML при изменении другого комбинированного окна с помощью JQuery - PullRequest
0 голосов
/ 14 сентября 2011

Я нахожусь в поиске простого способа динамической загрузки в поле со списком HTML при смене другого поля со списком. У меня есть способ, но он действительно мучителен и не гибкий код, который трудно поддерживать

Например, у меня есть 2поля со списком страна / провайдер при изменении страны в соответствии со значением страны значение поля со списком провинции должно измениться.

function getCo(cid){
    var countryVal=$('#cmbCountry').val();
    $.post("<?php echo url_for('country/ajaxloadcourse') ?>", //Ajax file
        { cid: cid },  // create an object will all values
        //function that is called when server returns a value.
        function(data) {
            var selectbox="<select name='province' id='province' class='formSelect' style='width: 150px;' tabindex='4' onchange='getCourseId(this.value,"+countryVal+")'>";
            selectbox = selectbox +"<option value=''><?php echo __('--Select--') ?></option>";
            $.each(data, function(key, value) {
                selectbox=selectbox +"<option value="+key+">"+value+"</option>";
            });
            selectbox=selectbox +"</select>";
            $('#provincelist').html(selectbox);
        },
        //How you want the data formated when it is returned from the server.
        "json"
    );
}

Есть ли простой способ сделать это, спасибо

1 Ответ

0 голосов
/ 14 сентября 2011

2 дополнительных предложения:

  1. Вместо этого вы можете поместить блоки HTML / Framen / DOM Builder на стороне сервера, поэтому создайте класс / метод для генерации DOM (поле выбора) (поскольку почти все популярные php-фреймворки имеют свой HTML-помощник или если вы уже привыкли к какой-либо системе шаблонов, например, Smarty), это может уменьшить ваш JS-скрипт для упрощения обслуживания.

  2. Рефакторинг вашего кода. Если у вас есть какая-то похожая функция / метод, в вашем приложении создание общей функции - лучший способ сохранить ваш код чистым и доступным для обслуживания. В этом случае, если у вас есть более одного метода комбинированного комбинированного блока, хорошей идеей будет поместить некоторую функцию, подобную приведенной выше, в ваш собственный пользовательский «плагин», чтобы вам не нужно было писать другую тождественную функцию, как указано выше.

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