var khabarovsk_moscow = 10000;
var moscow_khabarovsk = 10000;var spb_moscow = 5000;
var moscow_spb = 5000;else if (direction == 'khabarovsk_moscow') {
$('.final_price').html(khabarovsk_moscow);
}
else if (direction == 'spb_moscow') {
$('.final_price').html(spb_moscow);
}if (direction == 'ПОИСК_ПО_ВСЕМ_ПЕРЕМЕННЫМ_ЗНАЧЕНИЯ_ОТКУДА_И_КУДА') {
$('.final_price').html(ВСТАВИТЬ_ЗНАЧЕНИЕ_ПЕРЕМЕННОЙ);
}prices = {
khabarovsk: {
moscow: 1000,
spb: 1000
},
moscow: {
khabarovsk: 1000,
spb: 500
},
spb: {
khabarowsk: 1000,
moscow: 500
}
};
$('.final_price').html(prices[$('#select1').val()][$('#select2').val()]);
<select id="departure"></select>
<select id="destination"></select>
<select id="type">
<option value="1">в одну сторону</option>
<option value="2">туда и обратно</option>
</select>
<div id="price"></div>const routes = [
[ 'Хабаровск', 'Казань', 100 ],
[ 'Хабаровск', 'Омск', 200 ],
[ 'Хабаровск', 'Владивосток', 300 ],
[ 'Хабаровск', 'Иркутск', 400 ],
[ 'Хабаровск', 'Москва', 500 ],
[ 'Тюмень', 'Владимир', 234 ],
[ 'Тюмень', 'Красноярск', 345 ],
[ 'Тюмень', 'СПб', 456 ],
[ 'Тюмень', 'Москва', 567 ],
[ 'Тюмень', 'Якутск', 678 ],
];
const prices = routes.reduce((acc, n) => (
(acc[n[0]] = acc[n[0]] || [])[n[1]] = n[2],
(acc[n[1]] = acc[n[1]] || [])[n[0]] = n[2],
acc
), {});
const setOptions = (el, options) =>
el.innerHTML = options.map(n => `<option>${n}</option>`).join('');
const updatePrice = () =>
price.textContent = type.value * prices[departure.value][destination.value];
const departure = document.querySelector('#departure');
const destination = document.querySelector('#destination');
const type = document.querySelector('#type');
const price = document.querySelector('#price');
type.addEventListener('change', updatePrice);
destination.addEventListener('change', updatePrice);
departure.addEventListener('change', e => {
setOptions(destination, Object.keys(prices[e.target.value]));
updatePrice();
});
setOptions(departure, Object.keys(prices));
departure.dispatchEvent(new Event('change')); var err = 'выберите разные города';
prices = {
khabarovsk: {
khabarovsk: err,
moscow: 1200,
spb: 1000,
rdn: 750,
smr: 888
},
moscow: {
khabarovsk: 1200,
moscow: err,
spb: 500,
rdn: 650,
smr: 777
},
spb: {
khabarowsk: 1000,
moscow: 500,
spb: err,
rdn: 550,
smr: 555,
},
rdn: {
khabarowsk: 750,
moscow: 650,
spb: 550,
rdn: err,
smr: 444
},
smr: {
khabarowsk: 750,
moscow: 650,
spb: 550,
rdn: 888,
smr: err
}
};
$( "select.city_choice" ).change(function() {
$('.final_price').html(prices[$('#city_from').val()][$('#city_to').val()]);
});var err = 'выберите разные города';
altprices = [
['moscow','khabarovsk',1200],
['moscow','spb',500],
['moscow','rdn',650],
['moscow','smr',777],
['khabarovsk','spb',1000],
['khabarovsk','rdn',750],
['khabarovsk','smr',888],
['spb','rdn',550],
['spb','smr',555],
['rdn','smr',444]
];
$( "select.city_choice2" ).change(function() {
for(var i = 0; i < altprices.length;i++){
if ($('#city_from2').val() == $('#city_to2').val()) {
$('.final_price2').html(err);
return;
}
if($.inArray($('#city_from2').val(), altprices[i]) != -1 && $.inArray($('#city_to2').val(), altprices[i]) != -1){
$('.final_price2').html(altprices[i][2]);
}
}
});