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

Эта конкретная функция получает данные от субъектов и отображает их в div с идентификатором «колледжи»

function showAanwezigheid(str) {
    if (str == "") {
        document.getElementById("colleges").innerHTML = "";
        return;
    } else { 
        if (window.XMLHttpRequest) {
            // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        } else {
            // code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                document.getElementById("colleges").innerHTML = this.responseText;
            }
        };
        xmlhttp.open("GET","../controller/docentController.php?action=getColleges&vak="+str,true);
        xmlhttp.send();
    }
}

Вот контроллер, который вызывает запрос и отображает результат:

$vak = $_GET['vak'];
$colleges = $q->getColleges($vak); 
echo "<select id='college'>";
echo "<option>Selecteer een college:</option>";
foreach($colleges as $college){
echo "<option value='".$college->getCollege()."'>College ".$college->getCollege()."</option>";
}
echo "</select>";
}

Это идентификатор, где отображается результат

<span id="colleges"></span>

И эта функция должна выбрать тег «select» с идентификатором «College», чтобы получить это значение при изменении

$(document).ready(function(){
    $('#vak').on('change', function() {
    var vak = this.value;
    alert(vak);
    $('#college').on('change', function() {
       var college = this.value;
       alert(college);
    });
    });
}); 

Я чувствую, что было бы так легко исправить, но я просто не вижу, чтобы это сработало ...

1
sebas2201 28 Май 2017 в 18:24

2 ответа

Лучший ответ

Измените код jQuery, как показано ниже: -

$(document).on('change','#vak',function() {
    var vak = $(this).val();
    alert(vak);
});
$(document).on('change','#college',function() {
    var college = $(this).val();
    alert(college);
});  

Примечание: - Убедитесь, что библиотека jQuery добавлена перед кодом вашего скрипта. В противном случае вы получите ошибку $ is undefined

Это называется Делегирование событий

0
Anant Singh---Alive to Die 28 Май 2017 в 15:41

Если вы хотите получить значение #college select при изменении, это будет проще:

$(document).ready(function(){
    $('#vak').on('change', function() {
        var vak = $(this).val();
        alert(vak);
    });

    $('#college').on('change', function() {
       var college = $(this).val();
       alert(college);
    });
});

Если вы заметили, onchange #vak и #college разделены

0
Peter 28 Май 2017 в 15:36