Я пытаюсь автоматически заполнить поля ввода после выбора пользователем опции из выпадающего списка, используя Jquery и JSON данные, полученные от удаленного вызова API.
My Цель состоит в том, чтобы конечный пользователь выбрал клиента из раскрывающегося списка (который динамически заполняется из данных JSON, отправленных с сервера), а затем в поля ввода заполняются сведения о клиентах, хранящиеся в массиве JSON.
В настоящее время список загружается и отображает имя клиента в списке. Затем я могу просто заполнить имя клиента во всех текстовых полях.
Редактировать: я могу сделать это, сделав еще один вызов на сервер или сделать так, чтобы сервер отобразил страницу. Но я только хочу, чтобы мое приложение сделало 2 вызова на сервер, GET, чтобы получить конфигурационные файлы JSON для приложения, а затем PUT / POST для обновления записей. Я использую Laravel 7 .x для серверной части.
Мне нужно иметь доступ к другим парам ключ / значение для клиента.
Это мой JSON вывод из вызов API удаляет первое запоминание «данных» верхнего уровня, это, кажется, позволило мне отсортировать их в выпадающий список, иначе все это было бы просто как один пустой выпадающий элемент.
[
{
"CUID": 5,
"can": "Acme",
"pmfn": "Krillin",
"pmln": "N/A",
"pmpe": "test1@test.com",
"pmpn": "7343253228",
"cct": "subContract",
"cgt": "unarmedGuard",
"created_at": "2020-03-29T19:12:47.000000Z",
"updated_at": "2020-03-29T19:12:47.000000Z"
},
{
"CUID": 15,
"can": "test",
"pmfn": "john",
"pmln": "wick",
"pmpe": "djdja@jdjdjdj.com",
"pmpn": "55555555556",
"cct": "directContract",
"cgt": "armedGuard",
"created_at": "2020-03-30T18:14:52.000000Z",
"updated_at": "2020-03-30T19:44:56.000000Z"
},
{
"CUID": 16,
"can": "test43",
"pmfn": "Jay",
"pmln": "silent bob",
"pmpe": "hdhdhd@gmail.com",
"pmpn": "7343253228",
"cct": "directContract",
"cgt": "unarmedGuard",
"created_at": "2020-03-30T19:46:07.000000Z",
"updated_at": "2020-04-02T01:29:10.000000Z"
},
Это моя текущая Jquery функция
function populateCustomer (){
let url = 'http://10.1.10.96:8080/api/customerList'; //sets the url of the JSON data
let dropdown = $('#selectCustomerList'); // grabs the select element based on ID
dropdown.empty();
dropdown.append('<option selected="true" disabled>Customer</option>'); // adds a non-clickable default
dropdown.prop('selectedIndex', 0);
// Populate dropdown with list of customers
$.getJSON(url, function (data) {
$.each(data, function (key, entry) {
dropdown.append($('<option></option>').attr('value', entry.can).text(entry.can));
if(data.Status=="Success") // checks if drop down list item was grabbed
{
$("#can").attr('value', entry.can); //populates customer name inputer field from selected drop down item
$("#pmfn").attr('value', entry.pmfn);
// $("#pmln").attr('value', entry.pmln);
}
dropdown.change(function () {
$('#can').val(this.options[this.selectedIndex].value);
$('#pmfn').val(this.options[this.selectedIndex].value);
//$('#pmln').val(this.options[this.selectedIndex].text);
});
})
});
}
populateCustomer();
Основа c html
<label for="can"> Company Name</label>
<input type="text" name="customer_info" id="can" class="disabled" value="" readonly="readonly" />
<label for="pmfn">Property Mangers First Name</label>
<input type="text" name="customer_info" id="pmfn" value="" readonly="readonly" class="disabled" />