Home > database >  Dropdown Call API From Ajax
Dropdown Call API From Ajax

Time:12-17

How can I access the API from the drop-down list? My drop down are Price by Recyclables and Service charger. How can I do it?

This is a HTML code:

<div >
    <label for="text4" >Price Mode</label>
    <select  id="select-price-mode">
        <option value=""></option>
    </select>
</div>

This is my API using ajax:

$.ajax({
    // The url that you're going to post  This is the url that you're going to put to call the backend api, in this case, it's  https://ecoexchange.dscloud.me:8080/api/get (production env)
    url: "https://ecoexchange.dscloud.me:8080/api/get",
    // The HTTP method that you're planning to use i.e. GET, POST, PUT, DELETE  In this case it's a get method, so we'll use GET
    method: "GET",
    // In this case, we are going to use headers as 
    headers: {
        // The query you're planning to call i.e. <query> can be UserGet(0), RecyclableGet(0), etc.
        query: "<query>",
        // Gets the apikey from the sessionStorage
        apikey: sessionStorage.getItem("apikey")
    },
    success: function (data, textStatus, xhr) {
        console.log(data);
    },
    error: function (xhr, textStatus, err) {
        console.log(err);
    }
});

And this my JSON response:

[
    {
        "PriceMode": "Price By Recyclables"
    },
    {
        "PriceMode": "Service Charger"
    }
]

CodePudding user response:

If I understand correctly, you are looking to add your AJAX results as <option> elements to your <select>. In your AJAX success handler simply loop over the resulting array and add each element as an <option>. For example:

success: function(data) {
    for (let option of data) {
        $('#select-price-mode').append($('<option>', {
            value: option.PriceMode,
            text: option.PriceMode
        }));
    }
}

Caveat: If you have many options then this could reduce performance. In cases like that it may be preferable to build one big HTML string of <options> and append the whole thing to the <select> afterward. Though in cases where there are many options you'd probably want to re-think using a simple <select> anyway.

  • Related