• 29-05-2019, 16:57:52
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhabalar arkadaşlar öncelikle herkeze kolay gelsin.
    Javascript ve jquery hakkındaçok fazla bilgim olmadığı için sizlere bir sorum olucaktı.

    https://jsfiddle.net/buraksuluk/ut3Lqxoj/4/

    linkte bir hesaplama aracı bulunmaktadır.
    genişilik ölçüsü girildikten sonra adet sayısını belirttiğiniz zaman benim istediğim şekilde hesaplama yapıyor(formülüm dahilinde)

    Hesaplama şöyle çalışıyor girdiğim adet sayısı kadar div oluşuyor ve genişik ölçüsüne girilen değere yaptığım hesaplama sayesinde ölçüler girilen div içinde yazdırıyorum.Bu hesaplamada bir sorun yok şuanda.

    yalnız ben herhangi bir dive tıkladığım index değerine bir input ile değiştirmek istiyorum.girdiğim değere görede diğer ölçülerin güncellenmesini istiyorum. acaba bunu hangi mantık üzerinde yapmalıyım

    yardımcı olursanız memnun olurum
    tekrardan herkeze kolay gelsin.
  • 29-05-2019, 17:32:50
    #2
    zaten istediğinin çoğunu yapmışsın her kutu için span oluşturmak yerine input oluşturursun.
    o inputlar için de click ile zaten yakalıyorsun, click yerine change olayını yakalarsın ve bu olayda yapmak istediğin hesaplamayı tekrar yaparsın.
    tekrar hesaplama fonksiyonu oluştur bir tane fonksiyona paremetre olarak değişen input indexini gönder ona göre hesaplama fonksiyonunu yaz
    ben olsam öyle yapardım.
  • 29-05-2019, 17:55:26
    #3
    mindwalker adlı üyeden alıntı: mesajı görüntüle
    zaten istediğinin çoğunu yapmışsın her kutu için span oluşturmak yerine input oluşturursun.
    o inputlar için de click ile zaten yakalıyorsun, click yerine change olayını yakalarsın ve bu olayda yapmak istediğin hesaplamayı tekrar yaparsın.
    tekrar hesaplama fonksiyonu oluştur bir tane fonksiyona paremetre olarak değişen input indexini gönder ona göre hesaplama fonksiyonunu yaz
    ben olsam öyle yapardım.
    Öncelikleönerilerin için teşekkürler. Ben onun span olarak kalmasını istiyorum açıkcası. Şöyle düşünüyorum. dblclick fonksiyonu ile bir popup veya alert içine input koyup onun içine girilmesi istiyorum . Fakat js bilgim iyi olmadığı için mesala inputun içine veri girilip hesapla dendikten sonra eski formülü iptal edip girilen değere göre formülü nasıl güncelleyecek açıkcası bilmiyorum hocam
  • 29-05-2019, 18:40:11
    #4
    buraksuluk adlı üyeden alıntı: mesajı görüntüle
    Öncelikleönerilerin için teşekkürler. Ben onun span olarak kalmasını istiyorum açıkcası. Şöyle düşünüyorum. dblclick fonksiyonu ile bir popup veya alert içine input koyup onun içine girilmesi istiyorum . Fakat js bilgim iyi olmadığı için mesala inputun içine veri girilip hesapla dendikten sonra eski formülü iptal edip girilen değere göre formülü nasıl güncelleyecek açıkcası bilmiyorum hocam
    göndermiş olduğun jsfiddle örneğinde genişlik 200 yükseklik 200 ve adet 5 seçtiğimde 30X30 kutular oluşturdu.
    sonra üzerine tıkladığımda yani click fonksiyonu ile yakalayıp index i mesaj olarak gösteriyorsun zaten,

    click yerine dblclick olayını kullan. sonra o fonksiyonun içinde prompt ile değeri al sonra yeniden hesaplama fonksiyonuna gönder.
    yeniden hesaplama fonksiyonunda da nasıl bir formül kullanacağını ben bilmiyorum ama hesaplama formülünden anladığım kadarıyla

    yükseklik için 170 mm sabit bir değer var girilen değerden bunu çıkarıyorsun
    genişlik için ise tahminimce soldan ve sağdan 15 mm ve aralarda da 5 mm olacak şekilde bir boşluk çıkarıp ona göre girilen genişlikten çıkarıp adete bölmüşsün.
    değerleri değiştirdiğinde yapacağın hesaplamada bu biraz karışıklığa neden olacak gibi bence yükseklik değerini değiştirtmemelisin. sadece genişlik değerini alabilirsin. buradaaklıma birkaç opsiyon geliyor bunları sen bileceksin girilen değer diğer değerlerden genişlik olarak farklı olacak haliyle o kendi sırasında mı duracak yoksa başa mı alacaksın onlara karar ver ama hesaplama ile ilgili sana şöyle bir örnek yaptım.

        function yenidenHesapla(index,deger){
    var genislik= $("#genislik").val();
                var yukseklik= $("#yukseklik").val();
                $("#buraya #uyari").hide();
                var adet= $("#adet").val();
                var olcu = (adet-1)*5+30;
                var genel= genislik - olcu-deger;
                var cam= genel / adet-1;
                var camyuk=yukseklik -170;
    $("#buraya #detay").each(function(){
            if($(this).index()==index) {
        $(this).html(deger + "X"+camyuk);
    } else {
        $(this).html(cam+"X"+camyuk);
    }
            
    });
        }
    $("#buraya #detay").dblclick(function(){
                        var index =$(this).index();
                        var deger=prompt("genişlik giriniz");
    yenidenHesapla(index,deger);
                        //alert(index);
                        
    });
  • 29-05-2019, 19:53:21
    #5
    mindwalker adlı üyeden alıntı: mesajı görüntüle
    göndermiş olduğun jsfiddle örneğinde genişlik 200 yükseklik 200 ve adet 5 seçtiğimde 30X30 kutular oluşturdu.
    sonra üzerine tıkladığımda yani click fonksiyonu ile yakalayıp index i mesaj olarak gösteriyorsun zaten,

    click yerine dblclick olayını kullan. sonra o fonksiyonun içinde prompt ile değeri al sonra yeniden hesaplama fonksiyonuna gönder.
    yeniden hesaplama fonksiyonunda da nasıl bir formül kullanacağını ben bilmiyorum ama hesaplama formülünden anladığım kadarıyla

    yükseklik için 170 mm sabit bir değer var girilen değerden bunu çıkarıyorsun
    genişlik için ise tahminimce soldan ve sağdan 15 mm ve aralarda da 5 mm olacak şekilde bir boşluk çıkarıp ona göre girilen genişlikten çıkarıp adete bölmüşsün.
    değerleri değiştirdiğinde yapacağın hesaplamada bu biraz karışıklığa neden olacak gibi bence yükseklik değerini değiştirtmemelisin. sadece genişlik değerini alabilirsin. buradaaklıma birkaç opsiyon geliyor bunları sen bileceksin girilen değer diğer değerlerden genişlik olarak farklı olacak haliyle o kendi sırasında mı duracak yoksa başa mı alacaksın onlara karar ver ama hesaplama ile ilgili sana şöyle bir örnek yaptım.

    function yenidenHesapla(index,deger){
    var genislik= $("#genislik").val();
    var yukseklik= $("#yukseklik").val();
    $("#buraya #uyari").hide();
    var adet= $("#adet").val();
    var olcu = (adet-1)*5+30;
    var genel= genislik - olcu-deger;
    var cam= genel / adet-1;
    var camyuk=yukseklik -170;
    $("#buraya #detay").each(function(){
    if($(this).index()==index) {
    $(this).html(deger + "X"+camyuk);
    } else {
    $(this).html(cam+"X"+camyuk);
    }
    
    });
    }
    $("#buraya #detay").dblclick(function(){
    var index =$(this).index();
    var deger=prompt("genişlik giriniz");
    yenidenHesapla(index,deger);
    //alert(index);
    
    });

    hocam tekrar teşekkür ederim.
    Belirttiğiniz Gibi formulü güncelledim fakat yapamadım. Normalde şöyle olması lazım

    $("#buraya #detay").dblclick(function(){
                    var index =$(this).index();
                    var deger=prompt("genişlik giriniz");
                    yenidenHesapla(index,deger);
    //alert(index);
    
    });
    
                function yenidenHesapla(index,deger){
                    
                    var yukseklik= $("#yukseklik").val();
                    var genislik= $("#genislik").val();
                    var adet= $("#adet").val();
                    var olcu = (adet-1)*5+30;
                    var olcukalan=olcu+deger
                    var genel= genislik-olcukalan;
                    var cam= genel/(adet-1);
                    var camyuk=yukseklik-170;
    
                    $("#buraya #detay").each(function(){
                        if($(this).index()==index) {
                            $(this).html(deger + "X"+camyuk);
                        } else {
    
                            $(this).html(cam+"X"+camyuk);
                        }
    
                    });
                }
    Şöyle olması lazım örneğin genişliği 3000 girdik toplam 6 adet yaptıgımız zaman sonuc 6 adet 491 çıkması lazım ve değer ölçüsü 300 verdiğimiz zaman formülü şu şekilde olması lazım
    değer girilen 300 diğerleri 529 gibi çıkması lazım

    (6adet-1)*5+30+deger
    cıkan sonucu 5 bölüp değer dışında kalan adetlere yazmam lazım aslında formülü doğru yazdığımı düşünüyorum yukarıda fakat çalışmadı
  • 29-05-2019, 21:21:04
    #6
    var olcukalan=olcu+deger
    bu satırda ; eksik syntax hatası var bence