Tengo un formulario de edición en el que intento obtener datos de MySql DB usando Ajax. Entonces, cuando hay dos menús desplegables select2. Quiero mostrar datos dentro de ese select2. Por ejemplo: cuando he creado un nuevo camión y conductor para una empresa en particular (digamos que el ID de la empresa es 6). Entonces, para el ID de empresa 6, seleccioné Driver como John y Truck como Flatbed y envié el formulario. Los datos se guardaron dentro de DB. Cuando quiero editar o actualizar algunos datos de eso, debería mostrar el nombre de la empresa para ID 6 (que se muestra correctamente) y el conductor como John y Truck como Flatbed.
A continuación se muestra mi guión:
function getTrip(tripid){ document.getElementById('edtrip').value = tripid; var url = "api/gettripinfo"; $.post(url,{ tripid : tripid, },function(data, status){ if (data.status == "OK") { if (data.statusCode == 1) { document.getElementById("edcompanyselect").value = data.response.company.companyname; document.getElementById("ed_com").value = data.response.company.companyid; document.getElementById('eddriverselect').value = data.response.driver.username; document.getElementById('edtruckselect').value = data.response.truck.name; document.getElementById("edtripnumber").value = data.response.tripnumber; document.getElementById("eddate").value = data.response.date; } else { var error = data.responseMessage; swal(error, "", "error"); } } else { var error = data.responseMessage; swal(error, "", "error"); } }); }Pero no puedo obtener el resultado esperado. Por favor envíeme sus valiosas sugerencias.
Pruebe el siguiente código. Con jQuery puede establecer el valor y activar el evento de change .
function getTrip(tripid){ document.getElementById('edtrip').value = tripid; var url = "api/gettripinfo"; $.post(url,{ tripid : tripid, },function(data, status){ if (data.status == "OK") { if (data.statusCode == 1) { document.getElementById("edcompanyselect").value = data.response.company.companyname; document.getElementById("ed_com").value = data.response.company.companyid; document.getElementById('eddriverselect').value = data.response.driver.username; document.getElementById('edtruckselect').value = data.response.truck.name; document.getElementById("edtripnumber").value = data.response.tripnumber; document.getElementById("eddate").value = data.response.date; jQuery("#edcompanyselect").val(data.response.company.companyname).trigger('change'); jQuery("#eddriverselect").val(data.response.driver.username).trigger('change'); jQuery("#edtruckselect").val(data.response.truck.name).trigger('change'); } else { var error = data.responseMessage; swal(error, "", "error"); } } else { var error = data.responseMessage; swal(error, "", "error"); } }); }El siguiente código resolvió el problema:
function getTrip(tripid){ document.getElementById('edtrip').value = tripid; var url = "api/gettripinfo"; $.post(url,{ tripid : tripid, },function(data, status){ if (data.status == "OK") { if (data.statusCode == 1) { document.getElementById("edcompanyselect").value = data.response.company.companyname; document.getElementById("ed_com").value = data.response.company.companyid; setTimeout(function(){ getDriverAjax(); getTruckAjax(); },500); document.getElementById("edtripnumber").value = data.response.tripnumber; document.getElementById("eddate").value = data.response.date; setTimeout(function(){ $("#eddriverselect").val(data.response.driver.userid).trigger('change'); $("#edtruckselect").val(data.response.truck.truckid).trigger('change'); $('#edit_info').modal("show"); }, 1500); } else { var error = data.responseMessage; swal(error, "", "error"); } } else { var error = data.responseMessage; swal(error, "", "error"); } }); }