bu tip işlemlrede eğer database den gelen bir değer söz konusu ise yani kullanıcının seçiminden sonra yükleneek olan seçenekler db den kontrol ediliyor ise kesinlikle ajax kullanılmalı... sayfa yenilenmediğitakdirde veriler hep aynı kalacaktır ve güncel olmayabilir ama ajax ile güncel verileri çekebilirsiniz... Eğer static veri ise o zaman jquery hide show gibi basit bir mantık kullanılabilir.
static veri için hemen hemen her yerden örnek bulabilirsin. basit olack ama fikir vermesi için...
<script url="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<form action="#fuck">
<select onchange="change(this)" id="select1">
<option value="1">birinci şehir</option>
<option value="2">ikinci şehir</option>
<option value="3">üçüncü şehir</option>
</select>
<select id="select2">
<option name="1" value="1">birinci şehi birinci otel</option>
<option name="1" value="2">birinci şehi ikinci otel </option>
<option name="1" value="3">birinci şehi üçüncü otel </option>
<option name="2" value="1">ikinci şehir birinci otel </option>
<option name="2" value="2">ikinci şehir ikinci otel </option>
<option name="2" value="3">ikinci şehir üçüncü otel </option>
<option name="3" value="1">üçüncü şehir birinci otel </option>
<option name="3" value="2">üçüncü şehir ikinci otel </option>
<option name="3" value="3">üçüncü şehir üçüncü otel </option>
</select>
</form>
function change(el){
var ev = el.value;
$("#select2 option").hide();
$('#select2 option[name="'+ev+'"]').show();
document.getElementsByName(ev)[0].selected = true;
console.log(ev);
}bu olayı basic düzeyde anlaman için faydalı olucaktır.