Слишком много звонков AJAX - PullRequest
       4

Слишком много звонков AJAX

0 голосов
/ 10 февраля 2019

Мой код такой грязный.Я создаю 1 Ajax-вызов каждый раз, когда отображаю элемент.Моя таблица будет иметь фиксированное количество 80 строк.Как я могу упростить мои повторяющиеся вызовы AJAX.

HTML

<tr>
<td>
    <div class="form-group row mb-0" >
        <div class="col-12">
            <select class="form-control form-control-sm mySelect2 " name="111" id="111">
                <?php
                include ('server_side/connection.php');
                $sql = "SELECT * FROM tbl_subjects";
                $result=mysqli_query($conn, $sql);
                while ($row=mysqli_fetch_array($result)) { ?>
                <option value="<?php echo $row['subject_code'];?>"><?php echo $row['subject_code'];?></option>
                <?php } ?>
            </select>
        </div>
    </div>
</td>
<td><span id="description_111"></span></td>
<td><span id="prerequisite_111"></span></td>
<td><span id="unit_111"></span></td>

AJAX

$("#111").change(function(){
        var subject_code = $(this).val();
        $.ajax({
            type: "POST",
            url: "server_side/load_subjectdesc.php",
            data: {subject_code: subject_code},
            success: function(result){
            $("#description_111").html(result);
            }
        });
    });
    $("#111").change(function(){
        var subject_code = $(this).val();
        $.ajax({
            type: "POST",
            url: "server_side/load_subjectpreq.php",
            data: {subject_code: subject_code},
            success: function(result){
            $("#prerequisite_111").html(result);
            }
        });
    });
    $("#111").change(function(){
        var subject_code = $(this).val();
        $.ajax({
            type: "POST",
            url: "server_side/load_subjectunit.php",
            data: {subject_code: subject_code},
            success: function(result){
            $("#unit_111").html(result);
            }
        });
    });

Один Ajax на один отображаемый элементперебор.Как я могу упростить или удалить столько вызовов AJAX?

1 Ответ

0 голосов
/ 10 февраля 2019

Вам нужно будет создать страницу php, которая будет возвращать JSON этой формы:

{
    description: 'descriptionvalue',
    perequisite: 'perequisitevalue',
    unit: 'unitvalue'
}

, и вы отправите ему запрос AJAX, например:

$("#111").change(function(){
    var subject_code = $(this).val();
    $.ajax({
        type: "POST",
        url: "server_side/yourpage.php",
        data: {subject_code: subject_code},
        success: function(result){
            for (var key in result) $("#" + key + "_111").html(result[key]);
        }
    });
});

Вы можете уточнить это дальше:

function myChange(idVal) {
    $("#" + idVal).change(function(){
        var subject_code = $(this).val();
        $.ajax({
            type: "POST",
            url: "server_side/yourpage.php",
            data: {subject_code: subject_code},
            success: function(result){
                for (var key in result) $("#" + key + "_" + idVal).html(result[key]);
            }
        });
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...