Я создаю корзину покупок, и у меня возникают проблемы с правильной работой jquery и php. У меня есть функция, называемая displayAmount($price)
, которая на данный момент просто форматирует число до 2 десятичных точек и добавляет к нему символ фунта стерлингов. Я хотел бы сохранить эту функцию как в будущем, когда я посмотрю, как разрешить пользователю изменять свою местную валюту, она будет использовать эту функцию для расчета и отображения правильной цены и валюты.использовать jquery, чтобы изменить цену выбора, цену эха с помощью функции php
Я хочу, чтобы у вас была возможность отобразить цену на странице продукта просмотра и изменить ее, когда пользователь меняет параметры в полях выбора.
Так что у меня это:
JQuery:
$("select").live('change',function() {
var price = 0;
$("select option:selected").each(function() {
price += parseFloat($(this).data('price'));
});
$('#productPriceLabel').html(price);
});
HTML:
<select class='productSelectOptions'>
<option data-price='+10'>+10</option>
<option data-price='+20'>+20</option>
</select>
<br>
<span id='productPriceLabel'></span>
Это прекрасно работает, чтобы изменить цену. Однако мне нужно уметь эхо-цену, используя echo displayAmount($price)
Как это сделать?
Благодаря
EDIT:
function displayAmount($amount)
{
$xamount = str_replace('.', '', $amount);
$type = gettype($xamount);
if($type = integer) {
global $Config;
return $Config['currency'] . number_format($amount, 2);
} else {
return $amount;
}
}
ВТОРОЙ EDIT: (FULL КОД)
// Get prices from database
$priceSQL = "SELECT *
FROM shopProductsPrices
WHERE pd_id = '$productId'";
$priceResult = dbQuery($priceSQL);
$priceOptions = "";
$productLowestPrice = 10500;
while($priceRow = dbFetch($priceResult)) {
if($productLowestPrice > $priceRow['spp_price']) { $productLowestPrice = $priceRow['spp_price']; }
$priceOptions .= "<option data-price='+".$priceRow['spp_price']."'>".$priceRow['spp_name']."</option>";
}
if($productLowestPrice == 10500) { $productLowestPrice = 0; }
<table style="border: none; width: 300px;">
<tr>
<td>
<span id="productContentItem">Package:</span>
</td>
<td>
<select class='productSelectOptions'>
<?= $priceOptions ?>
</select>
</td>
</tr>
<tr>
<td>
<span id="productContentItem">Quantity:</span>
</td>
<td>
<select class='productSelectOptionsQty'>
<option value="1">x1</option>
<option value="2">x2</option>
<option value="3">x3</option>
</select>
</td>
</tr>
<tr>
<td>
</td>
<td>
<?= $productAddToBasket ?>
</td>
</tr>
</table>
<span id='productPriceLabel'><?= displayAmount($productLowestPrice) ?></span>
<script>
$(".productSelectOptions").live('change',function() {
var price = 0;
$(".productSelectOptions option:selected").each(function() {
price += parseFloat($(this).data('price'));
$.ajax({
type: "POST",
dataType: "html",
url: '<?= SERV_ROOT ?>library/common.php',
data: '&price='+price,
success: function(returnedData){
$('#productPriceLabel').html(returnedData);
},
error: function(){
$('#productPriceLabel').html('Error Formatting');
}
}); //END Ajax
});
});
</script>
опубликовать функцию PHP здесь. –
добавлено в исходное сообщение Извините – user3306587
Когда вы используете jQuery, взаимодействие с вашим пользователем происходит на стороне клиента (в браузере вашего пользователя). Весь скрипт PHP обрабатывается на стороне сервера (другими словами, PHP обрабатывается до того, как страница будет передана клиенту). Если вы хотите, чтобы ваш пользователь изменил валюту на вашей странице и изменил ее цену, используя ваш PHP-скрипт, вам нужно будет использовать Ajax. Смотрите: https://api.jquery.com/jQuery.ajax/ Если вы хотите, я могу попытаться разработать, но я не могу как комментарий. –