#jquery #html #ajax
#jquery #HTML #ajax
Вопрос:
Как я могу получить результат вычисления на той же странице, когда я выбираю выпадающее значение?
Я пробовал с ajax. Но не исправлено. Я новичок в jquery и ajax.
<!-- drop down selection -->
<select>
<option value='1'>1 Pax</option>
<option value='2'>2 Pax</option>
<option value='3'>3 Pax</option>
</select>
<p>Price per each: $100</p>
<!-- calculating here -->
<p>Total price: $100 x Value of pax)</p>
Комментарии:
1. ваш вопрос неясен
2. Вам не нужен ajax для выполнения вычислений. Вы можете использовать либо jQuery, либо ванильный javascript.
3. Зависит от того, где выполняется ваш расчет и что он делает. Вопрос подразумевает, что у вас уже есть вычисление на стороне сервера, которое может использовать данные, отличные от клиентских, для выполнения того вычисления, для которого вы в данный момент используете POST. Итак, в этом случае вам понадобится ajax. Однако, похоже, вам просто нужна «цена * 100», поэтому нет необходимости в ajax.
Ответ №1:
Вы можете использовать ванильный JS addEventListener для обновления вычисления, а не AJAX.
// Store HTML elements in JS variables
const paxSelectEle = document.getElementById("pax-select");
const totalPriceEle = document.getElementById("total-price");
// Listen for a change in #pax-select
paxSelectEle.addEventListener("change", () => {
// Set the HTML of the total price to
// 100 * #pax-select value
totalPriceEle.innerHTML = 100 * paxSelectEle.value;
});
<!-- drop down selection -->
<select id="pax-select">
<option value='1'>1 Pax</option>
<option value='2'>2 Pax</option>
<option value='3'>3 Pax</option>
</select>
<p>Price per each: $100</p>
<!-- calculating here -->
<p>Total price: $<span id="total-price">100</span></p>
Ответ №2:
вы можете использовать следующий код
$("#ddldemo").change(function() {
$("#ldldemo").text(100 * parseInt($("#ddldemo").val()));
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
<select id="ddldemo" name="ddldemo">
<option value='1'>1 Pax</option>
<option value='2'>2 Pax</option>
<option value='3'>3 Pax</option>
</select>
<label id="ldldemo"></label>
<p>Total price: $100 x Value of pax)</p>
</div>
Комментарии:
1. Добро пожаловать в Stack Overflow! Пожалуйста, найдите время, чтобы описать, в чем заключаются проблемы и почему это решение помогает. Помните, мы здесь для того, чтобы обучать людей, а не просто писать для них код.
Ответ №3:
Просто используйте jquery. Вам не нужно использовать ajax для вычисления.
Вам нужно получить значение select
тега и поместить его в переменную, затем вы можете преобразовать его в целое число, чтобы использовать его для вычисления общей цены. Проверьте пример ниже:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="pax" onchange="calculate()">
<option value='1' selected>1 Pax</option>
<option value='2'>2 Pax</option>
<option value='3'>3 Pax</option>
</select>
<p>Price per each: $100</p>
<p>Total: <span id="total"></span></p>
<script>
function calculate() {
var get_value = $("#pax option:selected").text();
var no_pax = parseInt(get_value);
var price = 100;
var total_price = no_pax * price;
$("#total").text(total_price);
}
</script>
Комментарии:
1. Если вы используете jquery, то, вероятно, не хотите использовать
onchange
— лучше настроить событие с помощью jquery$("#pax").change(function() { $(this).val(); })
Ответ №4:
$("#pax").change(function(e) {
var price = 100;
$("#total").html($(this).val() * price)
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="pax">
<option value='0'>Select Pax</option>
<option value='1'>1 Pax</option>
<option value='2'>2 Pax</option>
<option value='3'>3 Pax</option>
</select>
<p>Price per each: $100</p>
<p>Total: <span id="total"></span></p>
Комментарии:
1. Пожалуйста, найдите время, чтобы описать, в чем заключаются проблемы и почему это решение помогает. Помните, мы здесь для того, чтобы обучать людей, а не просто писать для них код.
Ответ №5:
Один из способов сделать это:
1) Предоставление id
( valueselection
) select
опции для дифференцирования с другим select
элементом.
2) Поместите базовую цену и общую цену внутри label
с помощью unique id
аналогично шагу 1)
3) Рассчитайте начальную величину и цену для выбранного варианта:
var i= 1;
var base=$('label#baseprice').text();
$('label#total').text(base);
$("select#valueselection").change(function(){
i=$('select#valueselection').val();
$('label#total').text(base*i);
});
Смотрите фрагмент ниже:
var i= 1;
var base=$('label#baseprice').text();
$('label#total').text(base);
$("select#valueselection").change(function(){
i=$('select#valueselection').val();
$('label#total').text(base*i);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!-- drop down selection -->
<select id="valueselection">
<option value='1'>1 Pax</option>
<option value='2'>2 Pax</option>
<option value='3'>3 Pax</option>
</select>
<p>Price per each: $<label id="baseprice">100</label></p>
<!-- calculating here -->
<p>Total price: $<label id="total"></label></p>