arenpi adlı üyeden alıntı: mesajı görüntüle
Merhaba arkadaşlar. hem öğrenip hemde bir proje yapıyorum. projede bir çok husus google vs araştırarak çözdüm.

1-
“Blok adedi” “Özel dergi” Evet seçildiğinde en az 5000 ve katları olacak şekilde, Hayır Seçildiğinde ise eğer “Özel dergi” ise 500 ve katları olacak şekilde, “Özel dergi” değilse 50 ve katları olacak şekilde düzeltilecek.

bu kısmı javascriptle çalıştıramadım. html de sadece max sayı verebildiğimiz için js ile yapılması gerekiyor.

2-
“Özel dergimi ?” evet seçiliyken Baskı bedeline dergi Adedi 3000’den sonra her 500 adet için 15 TL ilave edilmesi,

bu kısımda ise eğer 3000den büyük 3500den küçük ise diye bir if yapısı oluşturdum ama 500 ve katları olunca 1000 binlik bir hesaplamada bu if kodu çok çok uzun oluyor. başka nasıl çözebilirim.

3- “Özel dergi mi?” Hayır seçiliyken Baskı Bedeline Karton Adedi 1000 adetten sonra her 500 adet için 7,5 TL ilave edilmesi,

burdada aynı şekilde.

birde arkadaşlar js ile radio buttonları nasıl pasip edip hesaplamadan çıkarabilirim.

Ciltli dergilerde Renk bedeli ve Grafik bedelinin pasif olması,

yani 1. buton işaretliyken 2. button devre dışı kalacak ve hesaplamaya dahil olmayacak.

teşekkür ederim şimdiden.

html si

php si
Öğrenme aşamasında olduğunuz için size bir yol göstermesi için kodları paylaşmak istedim. Fakat tam sayfa olarak değil, her özellik için ayrı kod paylaşımı yapacağım.

Öncelikle "özel dergi" diye bir alan bulamadım. Bu nedenle "özel blok" üzerinden gittim, bunu belirteyim.

Özel blok evet seçilirse blok adedi 5000 ve katları, hayır seçilirse blok adedi 500 ve katları olarak güncellenir (bunları en alta, jquery'nin çağırıldığı satırdan sonrasına eklemeniz gerekir.):

  $(function() {
      $('input[name="c14"]').change(function() {
          if ($('input[name="c14"]:checked').val() == 'evet') {
            $('input[name="c19"]').prop("step", 5000);
          } else {
            $('input[name="c19"]').prop("step", 500);
          }
      });
  });
"Özel dergimi ?" evet seçiliyken baskı bedeline dergi adedi 3000'den sonra her 500 adet için 15 TL ilave edilmesi (kodlarınız biraz karışık ve fiyat yerini bulamadım bu yüzden mantığı yazıyorum);

<?php
    $dergiAdedi = 5000; // kaç adet dergi basılacağı (örnek)
    $baskiBedeli = 1000; // hesaplanan toplam baskı bedeli (örnek)
    
    if ($_POST['OzelDergiMi'] == 'evet' && $dergiAdedi > 3000) { // post alanınızı bilmediğim için OzelDergiMi yazdım.
        $baskiBedeli = $baskiBedeli + abs(ceil(($dergiAdedi-3499)/500)*15); // 3500 dergi adedi ve üzerine, her 500 adette bir 15 TL ekler. çıkarılan sayı 3500 olursa 3501 ve üzerine ekler. 3000 olursa 3001 dergi olduğu an 15 TL ekler.
    }
"Özel dergi mi?" hayır seçiliyken baskı bedeline karton adedi 1000 adetten sonra her 500 adet için 7,5 TL ilave edilmesi de aynı mantık;

<?php
    $KartonAdedi = 5000; // kaç adet karton olacağı (örnek)
    $baskiBedeli = 1000; // hesaplanan toplam baskı bedeli (örnek)
    
    if ($_POST['OzelDergiMi'] == 'hayir' && $KartonAdedi > 1000) { // post alanınızı bilmediğim için OzelDergiMi yazdım.
        $baskiBedeli = $baskiBedeli + abs(ceil(($dergiAdedi-1499)/500)*7.5); // 1499 karton adedi ve üzerine, her 500 adette bir 7.5 TL ekler. çıkarılan sayı 1499 olursa 1500 ve üzerine ekler. 1500 olursa 1501 dergi olduğu an 15 TL ekler.
    }

yani 1. buton işaretliyken 2. buton devre dışı kalacak (buna da örnek kod veriyorum, yine jquery'i çağırdıktan sonra eklenecek):
$(function() {
      $('input[name="CiltliDergi"]').change(function() {
          if ($('input[name="CiltliDergi"]:checked').val() == 'evet') {
              $('input[name="RenkBedeli"]').prop("disabled", true);
              $('input[name="GrafikBedeli"]').prop("disabled", true);
          } else {
              $('input[name="RenkBedeli"]').prop("disabled", false);
              $('input[name="GrafikBedeli"]').prop("disabled", false);
              /* yukarıdaki kodlar çalıştırmazsa aşağıdakileri deneyin
                  $('input[name="RenkBedeli"]').removeAttr("disabled");
                  $('input[name="GrafikBedeli"]').removeAttr("disabled");
              */
          }
      });
}