Из того, что я могу понять в вашем вопросе, кажется, что вы обновляете эту страницу каким-то образом (для «редактирования») и извлекаете данные из базы данных и ожидаете, что значения появятся при загрузке.
Если это так, то причина, по которой вы ничего не видите при загрузке страницы, заключается в том, что вы загружаете данные только «при изменении» выбора - и поскольку страница загружается, «изменения» не происходит.- он просто загружен, поэтому JS никогда не запускается.
Один простой способ получить эти данные при загрузке - немного изменить JS .....
<script type="text/javascript">
$(document).ready(function() {
// pull the AJAX out to a function that can be used later
function call_ajax(cityId){
if(cityId){
$.ajax({
url: 'getLocality/'+cityId,
type: "GET",
dataType: "json",
success:function(data) {
$('select[name="enq_locality"]').empty();
$.each(data, function(key, value) {
$('select[name="enq_locality"]').append('<option value="'+ value.locality_id +'">'+ value.locality_name +'</option>');
});
}
});
}else{
$('select[name="enq_locality"]').append('<option value="">No Locality Found</option>');
}
}
$('select[name="enq_city"]').on('change', function() {
var cityId = $(this).val();
alert(cityId);
call_ajax(cityId);
});
// now, we make sure that 'enq_locality' is populated on loading the page
// NOTE: this presumes that $city->city_id exists
// from the example code it is also presumed so not checked here
call_ajax("<?php echo $city->city_id; ?>");
});
Кодне проверен (поскольку вы не дали полный пример для тестирования .....), хотя должен дать некоторые идеи по крайней мере об одном способе получения данных о загрузке страницы.
Если я не понялвопрос, пожалуйста, дайте больше кода и подробное описание того, что именно происходит.