• 12-02-2022, 12:12:24
    #1
    Üyeliği durduruldu
    merhaba,

    şöyle bir form oluşturdum:

    <form action="" method="POST" role="form">
    <div class="input-group mb-3">
      <div class="input-group-prepend">
        <span class="input-group-text" id="hasyuzdelik">Has Artış Oranı (%)</span>
      </div>
      <input type="text" class="form-control" aria-label="Default" aria-describedby="hasyuzdelik" placeholder="Varsayılan Değer: 5" name="hasyuzdelik">
    </div>
    
    <div class="input-group mb-3">
      <div class="input-group-prepend">
        <span class="input-group-text" id="ektutar">Eklenecek Tutar (Varsa)</span>
      </div>
      <input type="text" class="form-control" aria-label="Default" aria-describedby="ektutar" placeholder="Varsayılan Değer: 0" name="ektutar">
    </div>
    <div style="margin-top:10px"><button type="submit" class="btn btn-primary btn-sm btn-block" name="hesapla">Hesapla</button></div>
    <p class="text-center">Sonuç:<?=$hasyuzdelik?></p>
    </form>
    Bu formdan gelen veri bu şekilde değişkene aktarmaya çalışıyorum:

    if($_POST['hesapla']){
        $hasyuzdelik = $_POST['hasyuzdelik'];
        $ektutar = $_POST['ektutar'];
        echo $hasyuzdelik;
    echo '<br>';
        echo $ektutar;
    }
    Fakat çıktı alamıyorum. Nerede hata yaptığımı söyleyebilir misiniz?
  • 12-02-2022, 12:21:00
    #2
    if(isset($_POST['hesapla']))
  • 12-02-2022, 12:29:51
    #3
    Üyeliği durduruldu
    yanıt için teşekkür ederim. öğrenmek için bu tür uygulamalar yapıyorum. bu işlemin amacı nedir?
    mertkilic0111 adlı üyeden alıntı: mesajı görüntüle
    if(isset($_POST['hesapla']))
  • 12-02-2022, 12:35:23
    #4
    Halil0707 adlı üyeden alıntı: mesajı görüntüle
    yanıt için teşekkür ederim. öğrenmek için bu tür uygulamalar yapıyorum. bu işlemin amacı nedir?
    Bende yeni öğreniyorum php yi o yüzden yanlışım varsa düzeltirlerse sevinirim. isset içine yazılan değerin boş mu dolu mu olduğunu kontrol ediyor. Eğer doluysa True, boşsa False değerini döndürüyor. Butona baslığında da içi dolu olduğundan True dönüyor ve if kod bloğu normal olarak çalışmış oluyor.

    Birde if($_POST) şeklinde yazdığında da çalışıyor ama büyük ihtimalle böyle yazıldığında birden fazla form varsa karışıklık oluyor olabilir diye düşünüyorum.
  • 12-02-2022, 12:38:48
    #5
    Üyeliği durduruldu
    bu bilgiler için de teşekkür ederim. sayfada başka form ve input bulunmuyor. isset yazınca veriyi alabildim. sonuç alınca bırakmak olmaz tabi sorgulamaya devam
    emir147 adlı üyeden alıntı: mesajı görüntüle
    Bende yeni öğreniyorum php yi o yüzden yanlışım varsa düzeltirlerse sevinirim. isset içine yazılan değerin boş mu dolu mu olduğunu kontrol ediyor. Eğer doluysa True, boşsa False değerini döndürüyor. Butona baslığında da içi dolu olduğundan True dönüyor ve if kod bloğu normal olarak çalışmış oluyor.

    Birde if($_POST) şeklinde yazdığında da çalışıyor ama büyük ihtimalle böyle yazıldığında birden fazla form varsa karışıklık oluyor olabilir diye düşünüyorum.
  • 12-02-2022, 12:41:30
    #6
    Mantık olarak doğru fakat hesapla boş geliyor. Yani; print_r($_POST); ile ekrana gelen dataları yazdırınca

    Array ( [hasyuzdelik] => 1 [ektutar] => 1 [hesapla] => )

    hesapla değeri boş. isset fonksiyonu bu post değeri geliyor mu diye bakar. İçi dolu ya da boş olması farketmezsizin. Eğer hesapla diye değer geliyorsa if içerisindeki kodlar çalışır
  • 12-02-2022, 12:41:41
    #7
    Halil0707 adlı üyeden alıntı: mesajı görüntüle
    bu bilgiler için de teşekkür ederim. sayfada başka form ve input bulunmuyor. isset yazınca veriyi alabildim. sonuç alınca bırakmak olmaz tabi sorgulamaya devam
    Aynen öyle. Bende sürekli sorgulayıp mantığını öğrenmeye çalışıyorum. Birşeyi öğreneceksek adam akıllı öğrenelim, herşeyini öğrenmeye çalışalım.
  • 12-02-2022, 13:04:00
    #8
    Developer
    emir147 adlı üyeden alıntı: mesajı görüntüle
    Bende yeni öğreniyorum php yi o yüzden yanlışım varsa düzeltirlerse sevinirim. isset içine yazılan değerin boş mu dolu mu olduğunu kontrol ediyor. Eğer doluysa True, boşsa False değerini döndürüyor. Butona baslığında da içi dolu olduğundan True dönüyor ve if kod bloğu normal olarak çalışmış oluyor.

    Birde if($_POST) şeklinde yazdığında da çalışıyor ama büyük ihtimalle böyle yazıldığında birden fazla form varsa karışıklık oluyor olabilir diye düşünüyorum.
    değişken boş mu dolu mu kontrol eden empty fonksiyonu,
    isset ise değişken var mı yok mu onu kontrol ediyor. bu yüzden değişken hiç gelmiyor olsa bile isset ile sorguladığınızda hata almıyorsunuz.

    ikinci sorununuz için global $_POST değişkenini sorgulamak yerine submit butonuna farklı name parametreleri vererek ayırabiliriniz.

    şu şekilde;
    if(isset($_POST['SubFormSubmit'])){}
    if(isset($_POST['MainFormSubmit'])){}
    iyi çalışmalar dilerim
  • 12-02-2022, 13:22:00
    #9
    Üyeliği durduruldu
    böyle durumlarda print_r kullanmayı bilmek bile bir tecrübe ve bende o tecrübe henüz yok
    hesapla içerisinde neden değer gelmiyor? form henüz doldurulmadığı için mi? bu kullanım başka sorunlara yol açar mı? yoksa çalışıyorsa elleşmemek mi lazım?
    mertkilic0111 adlı üyeden alıntı: mesajı görüntüle
    Mantık olarak doğru fakat hesapla boş geliyor. Yani; print_r($_POST); ile ekrana gelen dataları yazdırınca

    Array ( [hasyuzdelik] => 1 [ektutar] => 1 [hesapla] => )

    hesapla değeri boş. isset fonksiyonu bu post değeri geliyor mu diye bakar. İçi dolu ya da boş olması farketmezsizin. Eğer hesapla diye değer geliyorsa if içerisindeki kodlar çalışır