Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

INPUT VE SELECT DEĞERİNE GÖRE FORM METHOD

Konu, 'Javascript' kısmında stronger07 tarafından paylaşıldı.

  1. stronger07

    stronger07 Üye

    Kayıt:
    21 Aralık 2013
    Mesajlar:
    78
    Beğenilen Mesajlar:
    1
    Merhaba arkadaşlar kolay gelsin.

    Form ile alakalı denemelerime rağmen istediğim birşeyi yapamadım.

    İstediğim şey, formdaki değere göre form method action değeri :

    Örneğin :

    <form method="post" action="formgonder">

    <input name="ad" type="text"> // Değere "Cem" girdik diyelim
    <input name="soyadi" type="text"> // Değere "Atasoy" girdik diyelim

    form şu şekilde değişecek veya bu şekilde gönderecek

    <form method="post" action="formgonder/Cem/Atasoy/">

    Şu şekildeki denememde şu sonucu veriyor.

    formgonder?ad=Cem&soyad=Atasoy

    <form id="myform" action="/formgonder" method="GET">

    <input name="ad" type="text"> // Değere "Cem" girdik diyelim
    <input name="soyadi" type="text"> // Değere "Atasoy" girdik diyelim
    <input type="submit" value="Gönder">
    </form>

    Ama ben tabiki yukarıdaki gibi istiyorum. Bir yolu var mıdır acaba ?

    Saygılar.
     
  2. aspmaker

    aspmaker Daimi Üye

    Kayıt:
    17 Mart 2010
    Mesajlar:
    1,135
    Beğenilen Mesajlar:
    2
    Meslek:
    web programlama
    Şehir:
    Ankara
    Merhaba.
    Bu işi form submit edilmeden önce action değerini güncelleyerek yapabilirsiniz. Jquery kütüphanesi ile şu şekilde olabilir.

    Edit fiddle - JSFiddle
     
    stronger07 bunu beğendi.
  3. stronger07

    stronger07 Üye

    Kayıt:
    21 Aralık 2013
    Mesajlar:
    78
    Beğenilen Mesajlar:
    1
    hocam sen varya müthiş bir insansın. Eline sağlık.

    Saatlerdir uğraşıyordum. Yapamıyordum.

    Çok teşekkür ederim.
     
  4. stronger07

    stronger07 Üye

    Kayıt:
    21 Aralık 2013
    Mesajlar:
    78
    Beğenilen Mesajlar:
    1
    Hocam seni yormaz isem, mantığını çözemedim bile. O yüzden deneyemedim. Ama gerçekten son isteğim :)

    Diyelim ki bunların önünde bir de radio buttonlar var.

    <input type="radio" value="oncead" checked> Önce Ad
    <input type="radio" value="oncesoyad"> Önce Soyad

    Bunlardan hangisini seçerse, form method da o önce olacak.

    Örneğin Önce ad seçti ise : <form method="post" action="formgonder/Cem/Atasoy/">
    Önce Soyad seçti ise : <form method="post" action="formgonder/Atasoy/Cem/">

    Belki çok şey istiyorum farkındayım ama, bu olursa bol bol teşekür edeceğim size.

    Saygılar tekrardan.
     
  5. tst

    tst Aktif Üye

    Kayıt:
    27 Ocak 2009
    Mesajlar:
    269
    Beğenilen Mesajlar:
    4
    var actionString = $('input[name="isim"]:checked').val() + $('input[name="isim"]:not:)checked)').val() ;

    attr() fonksiyonuyla formun action özelliğin yeni değer olarak actionString atamalısınız
     
  6. stronger07

    stronger07 Üye

    Kayıt:
    21 Aralık 2013
    Mesajlar:
    78
    Beğenilen Mesajlar:
    1
    tst hocam öncelikle cevabınız için çok teşekkür ederim.

    Fakat aspmaker hocamız input .val ile alakalı yardımcı oldu. Onu çözdük çok şükür.

    Fakat sonradan kendisinden radio ile yer değişimi nasıl yapabiliriz diye sormuştum.

    Sanırım siz görmediniz.

    Sizin de bilginiz varsa o konuda yardımlarınızı bekliyorum. Saygılar.
     
  7. tst

    tst Aktif Üye

    Kayıt:
    27 Ocak 2009
    Mesajlar:
    269
    Beğenilen Mesajlar:
    4
    Hayır ikinci sorunuza yanıt olarak yazdım zaten onu
     
  8. stronger07

    stronger07 Üye

    Kayıt:
    21 Aralık 2013
    Mesajlar:
    78
    Beğenilen Mesajlar:
    1
    hocam dikkatsizliğimi mazur görün.

    baştaki input görünce text zannettim. O yüzden checked e dikkat etmemişim.

    Dediğiniz şekilde denemeler yaptım ama başaramadım.

    Mümkünse biraz daha açabilir misiniz acaba ?
     
  9. stronger07

    stronger07 Üye

    Kayıt:
    21 Aralık 2013
    Mesajlar:
    78
    Beğenilen Mesajlar:
    1
    Hocam uzun uğraşlar sonucu

    <script type='text/javascript'>
    window.onload=function(){
    $('#rform').submit(function() {
    var ad = $("#ad").val();
    var soyAdi = $("#soyadi").val();
    var myAction = $(this).attr("action");
    var actionString = $("input[name='isim']:checked").val() + $("input[name='isim']:not(':checked')").val() ;

    $(this).attr("action", actionString + "/" + soyAdi + "/" + ad);
    });
    }
    </script>

    <form id="rform" action="/formgonder" method="Post">
    <select id="ad" type="text">
    <option value="deneme1"></option>
    </select>
    <select id="soyadi" type="text">
    <option value="deneme2"></option>
    </select><br>
    <input id="radio1" name="isim" type="radio" value="radio1" checked> Deneme 1 Radio
    <br>
    <input id="radio2" name="isim" type="radio" value="radio2"> Deneme 2 Radio
    <input type="submit" value="Gönder">
    </form>

    bu şekilde çalıştırmayı başardım ama, bu kod radio da seçileni forma atıyor seçilmeyene göre değiştiriyor. Mantık doğru ama bu kez select lerin bir fonksiyonu kalmıyor. Benim istediğim ise radio da seçtiğine göre select option sırasını belirlemesi yani :

    Diyelim ki ; Deneme 1 Radio yu seçerse, select değerine göre; form action = formgonder/deneme1/deneme2
    Deneme 2 Radioyu seçerse select değerine göre ; form action = formgonder/deneme2/deneme1 olacak.

    Birbiriyle birleştirmeyi dün geceden beri deniyorum ama hep hata alıyorum.

    Yardımcı olabilirseniz sevinirim. Saygılar.