• 09-04-2013, 14:02:25
    #1
    Üyeliği durduruldu
    Merhaba;

    Hazırladığım Bir Sistem İçin Menu Başlıklarının Sıralamasını Değiştirmek İçin Aşağı ve Yukarı Oklarımız var.

    Yukarı Çıkacak isek Yukarı Ok'a Tıklıyoruz ve değeri -1 yapıyoruz.
    aynı şekilde Aşağı İşlemlerinde de Değeri +1 Yapıyoruz Buraya Kadar Tamamada

    Sıralama Tablosunda bir üst ve bir alt tablo değeri çakışıyor.

    mesela 4. sıradaki başlığı 3. sıraya çıkaracağımız zaman zaten var olan bir 3. sıra var bu sefer 2 adet 3. sıra oluşuyor bunun olmaması için bir ust ve bir alt tabloyu nasıl etkileyeceğiz.

    Tablo Orneği

    siralama |
    1
    2
    3
    4 // bu sıranın da aşağı inmesi için değeri 5 olması lazım
    5 // bu sıra yukarı çıktığında değeri 4 olur.
    6 // bu sranın değeride aşağı indiğinde 5 ile 6 yer değişmesi lazım..
    7
    8
    9
  • 09-04-2013, 17:21:01
    #2
    Üyeliği durduruldu
    merhaba;
    Yokmu Bu Konuya Yorum Yazacak Kimse..
  • 09-04-2013, 18:25:27
    #3
    örneğin 5. sıradakini 4e almak için önce 4.sıradaki kaydın sırasıı değiştirilir:

    update tabloadi set siralama=5 where siralama=4
    (4. sıradaki kaydın sırasını 5 yaptık)


    update tabloadi set siralama=4 where id=menu_kayit_id
    (işlem yapılan satır için de sıralamayı 4 yaptık)
  • 10-04-2013, 20:01:13
    #4
    Üyeliği durduruldu
    merhaba;

    sistem şu şekilde olacak joomla deneyimi olan arkadaşlarımızın yonetimde menu veya konu başlıklarını yukarı veya aşağı taşıma sistemi gibi bir sistem düşünüyorum.



    resimde de gördüğünüz gibi menude bulunan mavi renkli oklara basında başlık bir yukarı çıkıcak yukardaki başlık bir alta inecek.

    kırmızıda da anlattığımın tam tersi yani kırmızıya basınca bir alt satıra geçecek alttaki de yukarı çıkacak.

    kısmı olarak tamamladım sayılır fakat kafam durdu.

    yukarı işlemlerinde taşınan ve yerine geçilen satırın sıralama numarasını aynı anda etkilemem lazım. yani 5. satırı 4. satıra taşırken -1 ile 5. satır daki sıra no 4 olurken 4. satırdaki sıra numarası +1 ile 5 olması lazım.

    gper adlı üyeden alıntı: mesajı görüntüle
    örneğin 5. sıradakini 4e almak için önce 4.sıradaki kaydın sırasıı değiştirilir:

    update tabloadi set siralama=5 where siralama=4
    (4. sıradaki kaydın sırasını 5 yaptık)


    update tabloadi set siralama=4 where id=menu_kayit_id
    (işlem yapılan satır için de sıralamayı 4 yaptık)
  • 11-04-2013, 08:11:13
    #5
    Üyeliği durduruldu
    Günaydın Arkadaşlar.

    Konu Hakkında İp Ucu Verecek Kimse Yok mu?

    Gerçi Benim Aklıma Bir Yol Geldi Onu Deneyeceğim Ama Sizlerinde Fikirlerini Önemsiyorum..

    merhaba arkadaşlar konumuz hali hazırda halen aktifdir..
  • 11-04-2013, 12:41:06
    #6
    Slider sıralamasını düzenlemek için bir uygulama hazırlamıştım.

    jQuery sortable özelliği. Sayfanıza jQuery kütüphanesini dahil etmeniz gerekiyor.
    <script type="text/javascript"> 
      $(document).ready(function() {  
    	$(".listele").sortable({	
    	opacity: 0.6,
    	revert: true,
    	placeholder: 'ui-state-highlight',
    	update: function(){	
    	var posted = $(this).sortable("serialize");
    	$.post("slider-guncelle.php",posted,function(cevap){	
    	alert(cevap);	
    	});	
    	}//Güncelleme bitiş	
    	});  
    });
    
    </script>

    Bir kaç stil düzenlemesi

    <style type="text/css">
    .mamy {
    
    width: 500px;
    padding: 15px;
    border: solid 1px #ddd;
    margin: 10px auto;
    }
    
    .listele li {
    
    padding: 4px;
    width: 600x;
    margin-bottom: 4px;
    background-color: #eee;
    border: solid 1px #ddd;
    cursor: move;
    height: 20px;
    
    }
    
    </style>
    Sayfa içeriği;

    <div class="mamy">
    <ul class="listele">  
    <?php
    $sliderlar = $vt->tablo('select * from sliderlar order by sira asc');
     
    foreach($sliderlar as $slider) { 
      echo '<li id="degerler_'.$slider->id.'"><center>
      '.$slider->sira.'. Slider
      </center></li>';  
    }		
    ?>
    	
    	   </ul>	   
    	</div>
    ve son olarak slider-guncelle.php dosyası içeriği

    $degerler = $_POST['degerler'];
    
    $sayi = 1;
    
    foreach($degerler as $degersayi){
    
    $gnc = mysql_query("update sliderlar set sira = '".$sayi."' where id= '".$degersayi."'");
    
    $sayi = $sayi+1;
    }
    
    if($gnc){echo'Slider siralamasi guncellendi!';}
    Umarım işinize yarar, kolay gelsin.
  • 11-04-2013, 19:53:40
    #7
    Üyeliği durduruldu
    Merhaba;

    Paylaşım İçin Teşekkür ederim. fakat benim istediğim bu değil.

    benim istediğim şöyle tekrar anlatayım.

    elimizde 5 satırlık veri var

    1. satır

    2. satır // 3. satır bu satırın yerine geldiğinde satır numarası 3 den 2 ye değişicek bu satırın numarasıda 3 olcakki buda 3. satırın yerine geçebilsin.

    3. satır // diyelim bu satırı 2. satırın yerine getiricez burda satırın numarası 2 yaptık.

    4. satır

    5. satır


    msgr adlı üyeden alıntı: mesajı görüntüle
    Slider sıralamasını düzenlemek için bir uygulama hazırlamıştım.

    jQuery sortable özelliği. Sayfanıza jQuery kütüphanesini dahil etmeniz gerekiyor.
    <script type="text/javascript"> 
      $(document).ready(function() {  
    	$(".listele").sortable({	
    	opacity: 0.6,
    	revert: true,
    	placeholder: 'ui-state-highlight',
    	update: function(){	
    	var posted = $(this).sortable("serialize");
    	$.post("slider-guncelle.php",posted,function(cevap){	
    	alert(cevap);	
    	});	
    	}//Güncelleme bitiş	
    	});  
    });
    
    </script>

    Bir kaç stil düzenlemesi

    <style type="text/css">
    .mamy {
    
    width: 500px;
    padding: 15px;
    border: solid 1px #ddd;
    margin: 10px auto;
    }
    
    .listele li {
    
    padding: 4px;
    width: 600x;
    margin-bottom: 4px;
    background-color: #eee;
    border: solid 1px #ddd;
    cursor: move;
    height: 20px;
    
    }
    
    </style>
    Sayfa içeriği;

    <div class="mamy">
    <ul class="listele">  
    <?php
    $sliderlar = $vt->tablo('select * from sliderlar order by sira asc');
     
    foreach($sliderlar as $slider) { 
      echo '<li id="degerler_'.$slider->id.'"><center>
      '.$slider->sira.'. Slider
      </center></li>';  
    }		
    ?>
    	
    	   </ul>	   
    	</div>
    ve son olarak slider-guncelle.php dosyası içeriği

    $degerler = $_POST['degerler'];
    
    $sayi = 1;
    
    foreach($degerler as $degersayi){
    
    $gnc = mysql_query("update sliderlar set sira = '".$sayi."' where id= '".$degersayi."'");
    
    $sayi = $sayi+1;
    }
    
    if($gnc){echo'Slider siralamasi guncellendi!';}
    Umarım işinize yarar, kolay gelsin.
  • 11-04-2013, 20:48:59
    #8
    Javascript bilginiz ne derece bilmiyorum ama ben bunu javascript ile yapıyorum. Şöyle ki;

    Yukarıda resmini verdiğiniz menüyü listeleyen sayfada, sıralama tuşlarına basınca bir fonksiyonu tetikliyorum. Her menünün altında hidden inputlar yer alıyor. Örneğin üçüncü menüyü bir alta aldıysam, javascript ile hidden inputlarda 3. menünün inputuna 4, 4.menünün inputuna 3 yazıyorum. Güncelle dediğimde tümünü güncelliyorum.

    Farklı bir yöntem kullandığım bir script de vardı, json formatında çalıştığım..
  • 11-04-2013, 21:48:17
    #9
    Benim verdiğim yöntem sürükle bırak uygulamasıdır ve aslında işinizi de görür.