Saya mencoba mengatur teks opsi yang dipilih untuk menu pilih menjadi apa pun location - parameter ini telah diteruskan ke fungsi updateDepartment secara dinamis dari permintaan PHP sebelumnya.

Fungsi AJAX yang mengikuti panggilan ke file PHP lain untuk secara dinamis mengisi menu pilih #editDepartmentLocation dengan daftar pasangan opsi teks/nilai. Salah satu name dalam daftar ini akan selalu cocok dengan parameter location apa pun yang diteruskan ke fungsi.

Saya dapat menetapkan nilai #editDepartmentName ke parameter nama karena ini hanya input teks, namun ketika saya mencoba menambahkan $("#editDepartmentName").val(location) ini tidak berfungsi dan opsi yang dipilih hanya default ke item di bagian atas daftar, meskipun nilai location ada dalam daftar.

Apakah ada cara untuk menyiasatinya?

Terima kasih atas bantuan apa pun.

J:

function updateDepartment(name, id, location) {

    $.ajax({
        url: "libs/php/getLocation.php",
        type: 'GET',
        dataType: 'json',
        success: function (result) {
            console.log(result);
            if (result.status.name == "ok") {
                $.each(result.data, i => {
                    $('#editDepartmentLocation').append($("<option>", {
                        text: result.data[i].name,
                        value: result.data[i].id,
                    }));
                });
            };
        },
        error: function (error) {
            console.log(error);
        }
});

    $("#editDepartmentName").val(name);
    $("#editDepartmentLocation").val(location);

HTML:

<div class="form-group">
                <label for="name">Name:</label>
                <input type="text" value="" class="form-control" id="editDepartmentName" required>
              </div>
              <br>
              <div class="form-group">
                <label for="location">Location:</label>
                <select class="form-control custom-select" id="editDepartmentLocation" required>
                </select>
                </div>
0
price88 12 Mei 2021, 14:59

1 menjawab

Jawaban Terbaik

Ajax async, jadi "editDepartmentLocation" kemungkinan besar belum diisi. Coba pindahkan:

$("#editDepartmentName").val(name);
$("#editDepartmentLocation").val(location);

Di dalam fungsi sukses. Atau lakukan perbandingan seperti:

var option =  $("<option>", {
                    text: result.data[i].name,
                    value: result.data[i].id,
});

if (result.data[i].id == location){
    option.attr("selected", "selected");
}

$('#editDepartmentLocation').append(option);
0
Svela 12 Mei 2021, 12:29