出発駅A、到着駅Bを選択すると、120円と返る
出発駅A、到着駅Bを選択すると、120円と返るプログラムを作りたいのですが、
以前、AとBを選択すると、2.3kmと判断し、そこから120円とするのは、プログラム的にも、可読性を下げることがわかりました。
で、今回は、AとBを選択すれば、もうその時点で2.3㎞という値が付与されるプログラムを作りたいです。
ちなみにjqueryを使っています。
これもわけがあり、プログラムが簡便で済むからです。
お願いです。jsを省略せずにお願いします。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
</script>
<script>
var list = (list ?? []).concat([
{ "stations": ["A", "B"], destination: 1.5, price_nomal_adult: 100 },
{ "stations": ["A", "C"], destination: 1.5, price_nomal_adult: 150 },
{ "stations": ["A", "D"], destination: 1.5, price_nomal_adult: 200 },
]);
</script>
<script>
var list = (list ?? []).concat([
{ "stations": ["B", "C"], destination: 1.5, price_nomal_adult: 100 },
{ "stations": ["B", "D"], destination: 1.5, price_nomal_adult: 170 },
{ "stations": ["C", "D"], destination: 1.5, price_nomal_adult: 100 },
]);
</script>
<script>
$(function () {
$(document).on('change', function () {
var f = $('[name=from]').val();
var t = $('[name=to]').val();
var p = list.filter(x => x.stations.every(y => [f, t].includes(y)))[0]?.departure ?? null;
$('[name=departure]').val(p);
var p = list.filter(x => x.stations.every(y => [f, t].includes(y)))[0]?.arrival ?? null;
$('[name=arrival]').val(p);
var p = list.filter(x => x.stations.every(y => [f, t].includes(y)))[0]?.destination ?? null;
$('[name=destination]').val(p);
var p = list.filter(x => x.stations.every(y => [f, t].includes(y)))[0]?.price_nomal_adult ?? null;
$('[name=price_nomal_adult]').val(p);
});
});
</script>
<script>
</script>
出発駅:<select name="from">
<option value="">--</option>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
</select><br>
到着駅:<select name="to">
<option value="">--</option>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
</select><br>
<span id="span11"></span>
<br />~
<br /><span id="span51"></span>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
$('*[name="from"]').change(function() {
// value値を取得
const str11 = $('*[name="from"]').val();
$("#span11").text(str11);
});
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
$('*[name="to"]').change(function() {
// value値を取得
const str51 = $('*[name="to"]').val();
$("#span51").text(str51);
});
</script>
<br />
destination:<input name="destination"><br />
price_nomal_adult:<input name="price_nomal_adult">
お礼
指定しているのですが・・・ xmlのおまじないをかけてみたらとりあえず99パーセント化けなくなったのでとりあえずよしとしました。 ありがとうございました