• 07-12-2019, 10:05:37
    #1
    Merhaba Arkadaşlar Aşağıdaki Formu Şu Şekilde Post Ediyorum Fakat İnputlar Boşta bırakılsa post işlemi gerçekleşiyor bunun önüne nasıl geçerim.

    form
    <form id="siparisform" class="text-center border border-danger p-5">
    
    <p class="h4 mb-3">Lütfen Sipariş Bilgilerinizi Doldurunuz</p>
    
    <!-- adsoyad -->
    <input type="text" name="ad_soyad" class="form-control mb-4" placeholder="Ad Soyad" required>
    
    <!-- telefon no -->
    <input type="number" name="telefon" class="form-control mb-4" placeholder="Telefon Numaranız" required>
    
    <!-- adres -->
    <div class="form-group">
    <textarea class="form-control rounded-0" name="adres" rows="3" placeholder="Tam Adresiniz." required></textarea>
    
    <!-- ürün rengi -->
    <label class="active mt-2"><strong>Ahşap Rengini Seçiniz</strong></label>
    <select class="browser-default custom-select mb-4" name="ürün_rengi">
    <option value="Ceviz Patina Boyalı Ahşap" selected="">Ceviz Patina Boyalı Ahşap</option>
    <option value="Parlak Vernikli Ahşap">Parlak Vernikli Ahşap</option>
    </select>
    
    <!-- sipariş adet -->
    <input type="number" name="siparis_adet" class="form-control mb-4" placeholder="Adet" required>
    
    <!--Dosya Seçimi-->
    <b>Lütfen Baskı İstediğiniz Fotoğraf Medya Dosyasını Seçiniz.</b>
    <input type="file" name="medya_dosyasi" class="form-control-file btn btn-danger mt-2" required><hr>
    
    <!--Sözleşme İmzalatma-->
    <input class="form-check-input" type="checkbox" id="inlineCheckbox1" value="option1" required>
    <label class="form-check-label" for="inlineCheckbox1"><strong>Bu Siparişi Verirken Hizmet Şartlarını,İade Politaksını,Mesafeli Satış Sözleşmesini Okudum Onaylıyorum</strong></label><br>
    </div>
    </div>
    </div>
    </div>
    <div class="modal-footer">
    <button type="button" class="btn btn-danger" data-dismiss="modal">İptal Et</button>
    <button id ="siparisver" type="button" class="btn btn-success">Sipariş Ver</button>
    </form>
    java tarafı

    /* objectify fonksiyonu form datasındaki fazlalıkları temizlemek için kullanılıyor. */
    function objectifyForm(e) {
    for(var t= {}
    , r=0;
    r<e.length;
    r++)t[e[r].name]=e[r].value;
    return t
    }
    $('#siparisver').click(function(){ // gönder butonuna bastığımızdaki aksiyon.
    var FormData = objectifyForm($('#siparisform').serializeArray()); // Form dataları üstte yazdığımız fonksiyon ile çekiyoruz ve değişkene atıyoruz.
    
    $.ajax({ // ajax işlemi başlıyor
    type: 'POST', // ajax türünü belirtiyoruz
    url: 'mkaball/siparis.php', // ajaxın gönderileceği url
    data: {FormData: FormData}, // Ajaxta göndereceğimiz datayı seçiyoruz. DiziAnahtarı : Datadeğişkeni şeklinde
    success: function (data) { // işlem başarılıysa yapılacaklar ( Ajax işlemi )
    if(data.success = 'true'){ // ajax işlemi başarılıysa sonuçta insert işlemini yaptıysa buradayız.
    Swal.fire({ // Swal çalışıyor
    title: 'Siparişiniz Başarıyla Alındı',
    text: "Siparişiniz Başarıyla Oluşturuldu..Siparişinizi Telefon Numaranız İle Takip Edebilirsiniz. Sipariş İçin Teşekkür Ederiz",
    type: 'success',
    icon: 'success',
    });
    } else { // ajax işlemi başarılıysa sonuçta insert işlemini "YAPAMADIYSA" buradayız.
    Swal.fire({
    title: 'Bir Hata Oluştu !',
    text: "Lütfen Tekrar Deneyin Teknik Bir Sorun Oluştu..!",
    type: 'error',
    icon: 'danger',
    timer: 4000
    });
    }
    $('#siparisform').trigger("reset"); // Formdaki dataları sıfırlıyoruz.
    },
    error: function(e){ // Ajax hatalıysa hatayı basması için. Konsola basıyor.
    console.log(e);
    }
    });
    
    });

    <?php
    
    include 'baglanti.php';
    
    
    $ad_soyad = $_POST['FormData']['ad_soyad'];
    $adres = $_POST['FormData']['adres'];
    $telefon = $_POST['FormData']['telefon'];
    $siparis_adet = $_POST['FormData']['siparis_adet'];
    $ürün_rengi = $_POST['FormData']['ürün_rengi'];
    
    
    $ekle = $baglanti->prepare("INSERT INTO yenisiparisler SET ad_soyad = ?, adres = ?, telefon = ?, siparis_adet = ?, ürün_rengi = ?");
    $ekle->execute(array($ad_soyad,$adres,$telefon,$siparis_adet,$ürün_rengi));
    
    
    
    if($ekle){
    
        $data = [
            'success' => 'true'
        ];
        header('Content-type:application/json;charset=utf-8'); // burada datayı json formatında gönderebilmek için header ekledik.
        echo json_encode($data); // burada export olarak göstereceğimiz json datasını encode ettik.
    
    } else{
        $data = [
            'success' => 'false'
        ];
        header('Content-type:application/json;charset=utf-8'); // burada datayı json formatında gönderebilmek için header ekledik.
        echo json_encode($data); // burada export olarak göstereceğimiz json datasını encode ettik.
    }
    
    ?>
  • 07-12-2019, 10:30:57
    #2
    En basit hali ile inputlara id değeri ver. Örnek: <input id="ad_soyad" > vs. gibi.

    Sonra js tarafında input içeriğini çekip kontrol et. Örnek:

    var ad_soyad = $("#ad_soyad").val();

    if(ad_soyad.length == 0){
    alert("Ad soyad alanını boş bıraktınız.");
    }else{
    kayıt işleri başlasın....
    }

    Mantığını anlatmaya çalıştım. Umarım işine yarar.
  • 07-12-2019, 10:43:08
    #3
    Sanalgezgin57 adlı üyeden alıntı: mesajı görüntüle
    En basit hali ile inputlara id değeri ver. Örnek: <input id="ad_soyad" > vs. gibi.

    Sonra js tarafında input içeriğini çekip kontrol et. Örnek:

    var ad_soyad = $("#ad_soyad").val();

    if(ad_soyad.length == 0){
    alert("Ad soyad alanını boş bıraktınız.");
    }else{
    kayıt işleri başlasın....
    }

    Mantığını anlatmaya çalıştım. Umarım işine yarar.

    bu mantıkta çözdüm ama koşulu sizce elseif ilemi çoğaltmalıym yoksa daha pratik bir yöntem varmı çünkü 1 den fazla input var

    edit : koşul şartlarının arasına , atarak çözdüm çok teşekkür ederim