Veritabanından gelen ürünlerim için özellik verilerim ve değerleri mevcut. Örnek veriyorum A adında bir ürünüm var ve içinde GB diye bir özellik başlığım var ve altında 16GB 32 GB 64GB verileri mevcut. Her üründe birden fazla başlık ve değer olabilir. Örneğin başka bir üründe GB ve RAM değerleri olduğunu düşünelim. Ürünün bir ana fiyatı var ve birde minimum fiyatı var. Ve biraz önce saydığım 16GB 32GB gibi özellik değerleriminde eksi veya artı fiyatları var.
Örneğin ürünümüzün fiyatı 100 TL olsun.
Özellik değerlerinin fiyatları da aşağıda ki şekilde olsun;
16GB : -30₺
32GB: -20₺
64GB: -10₺
128GB: +20₺
Bu veriler bir inputta tanımlı. Benim istediğim bu verilere tıklandığında ana fiyattan düşerek&artarak en son fiyatı göstermesi. Fakat bir sorun mevcut. Başka başlıklar olduğunda örneğin RAM başlığı olsun;
2GB RAM: -100
4GB RAM: +50
Bu verilere tıkladığımda da sonuç başarılı bir şekilde geliyor fakat hiçbişey yapmadan tekrar GB değerinde seçim yaptığımda en baştaki fiyat üzerinden işlem yapıyor. Ve haliyle fiyatım bozuluyor.
Yardımcı olabilirseniz çok memnun olurum. Herkese iyi forumlar.
<div class="row mb-3">
<?php
$features_data_query = $db->prepare("SELECT * FROM features_data WHERE features_data_features_title_id = ?");
$features_data_query->execute([Guvenlik($features_title["id"])]);
$features_data_number = $features_data_query->rowCount();
$features_data_fetch = $features_data_query->fetchAll(PDO::FETCH_ASSOC);
if ($features_data_number > 0) {
foreach ($features_data_fetch as $features_data) {
?>
<div class="col-sm-3 col-md-4 col-lg-3">
<input class="regular_radio" style="min-width: 50%" type="radio" id="features-<?php echo Guvenlik($features_data["id"]); ?>" name="<?php echo Guvenlik($features_data["features_data_features_title_id"]);?>">
<label style="min-width: 100%" onclick="FiyatHesapla(<?php echo $product["product_money"]; ?>, <?php echo $features_data["features_data_price"]; ?>)" for="features-<?php echo Guvenlik($features_data["id"]); ?>"><?php echo Guvenlik($features_data["features_data_name"]); ?></label>
</div>
<?php
}
}
?>
</div>
<div class="col-md-12 d-flex justify-content-end" style="right: 10px; bottom: 10px;">
<div style="display: inline-block; margin-right: 10px; margin-left: 10px"><strong>Ön Teklif Fiyatı:</strong> <div style="display: inline-block" id="money">Hesaplanmadı</div></div>
<button type="submit" class="btn" style="background-color: #0034d0; color: white; width: 150px" id="nextStp2">İleri <i class="fa-solid fa-arrow-right"></i></button>
</div>
Number.prototype.formatMoney = function (fractionDigits, decimal, separator) {
fractionDigits = isNaN(fractionDigits = Math.abs(fractionDigits)) ? 2 : fractionDigits;
decimal = typeof (decimal) === "undefined" ? "." : decimal;
separator = typeof (separator) === "undefined" ? "," : separator;
var number = this;
var neg = number < 0 ? "-" : "";
var wholePart = parseInt(number = Math.abs(+number || 0).toFixed(fractionDigits)) + "";
var separtorIndex = (separtorIndex = wholePart.length) > 3 ? separtorIndex % 3 : 0;
return neg +
(separtorIndex ? wholePart.substr(0, separtorIndex) + separator : "") +
wholePart.substr(separtorIndex).replace(/(\d{3})(?=\d)/g, "$1" + separator) +
(fractionDigits ? decimal + Math.abs(number - wholePart).toFixed(fractionDigits).slice(2) : "");
};
function FiyatHesapla(product_price, featured_price) {
var anapara = product_price;
var sonuc = anapara+=featured_price;
var sayi= Number(sonuc).formatMoney(2, ',', '.');
document.getElementById("money").innerHTML=sayi;
}