• 06-10-2015, 11:54:35
    #1
    Merhabalar arkadaşlar,
    Selectboxla seçilen verileri serialize yaparak alıyorum bir sıkıntı yok, tek sıkıntı verileri post ettirirken ilk önce hangisi cevap veriyorsa onu post ediyor.
    Sırayla 1. cevap vermeden 2. ye geçmesi istiyorum, bu sıralamayı nasıl yapabilirim.
    $('a.eklem').on('click', function(){
    $(".chChildren input[type=checkbox]:checked").each(function(i,value) {
    /**/
    var id = $(value).val();
    $('#sonuc'+id).html('<img src="images/loading.gif" />');
    var veri = $('#mainForm'+id).serialize();
    /**/
    var tarih_ileri = $('input[name=tarih_gir]').val();
    var tarih_gir_date = $('input[name=tarih_gir_date]').val();
    var tarih_gir_time = $('input[name=tarih_gir_time]').val();
    
    $.ajax({
    url:'partal.php',
    type: "POST",
    async: true,
    cache: false,
    data:veri,
    success:function(result){
    $('#sonuc' + id).html('<button class="btn btn-info btn-xs" style="cursor:default">'+result+'</button>');
    }
    });
    /**/
    });
    return false;
    });
  • 06-10-2015, 15:53:03
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Function içerisine alarak ve async=false yaparak senkron çalışmasını sağlayabilirsin.
    Kontrol etmedim, syntax hatası çıkarsa düzeltirsin.

    $(".chChildren input[type=checkbox]:checked").each(function(i, value) {
    	(function(value) {
    		var id = $(value).val();
    		$('#sonuc'+id).html('<img src="images/loading.gif" />');
    		var veri = $('#mainForm'+id).serialize();
    		
    		var tarih_ileri = $('input[name=tarih_gir]').val();
    		var tarih_gir_date = $('input[name=tarih_gir_date]').val();
    		var tarih_gir_time = $('input[name=tarih_gir_time]').val();
    
    		$.ajax({
    			url: "partal.php",
    			type: "POST",
    			async: false,
    			cache: false,
    			data: veri,
    			success:function(result) {
    				$('#sonuc' + id).html('<button class="btn btn-info btn-xs" style="cursor:default">'+result+'</button>');
    			}
    		});
    	})(value));
    }
  • 06-10-2015, 17:15:44
    #3
    teşekkür ederim evet syntax hatası varmış giderdim çok sağolun çalıştı
  • 06-10-2015, 19:48:13
    #4
    rob33n adlı üyeden alıntı: mesajı görüntüle
    Function içerisine alarak ve async=false yaparak senkron çalışmasını sağlayabilirsin.
    Kontrol etmedim, syntax hatası çıkarsa düzeltirsin.

    $(".chChildren input[type=checkbox]:checked").each(function(i, value) {
    	(function(value) {
    		var id = $(value).val();
    		$('#sonuc'+id).html('<img src="images/loading.gif" />');
    		var veri = $('#mainForm'+id).serialize();
    		
    		var tarih_ileri = $('input[name=tarih_gir]').val();
    		var tarih_gir_date = $('input[name=tarih_gir_date]').val();
    		var tarih_gir_time = $('input[name=tarih_gir_time]').val();
    
    		$.ajax({
    			url: "partal.php",
    			type: "POST",
    			async: false,
    			cache: false,
    			data: veri,
    			success:function(result) {
    				$('#sonuc' + id).html('<button class="btn btn-info btn-xs" style="cursor:default">'+result+'</button>');
    			}
    		});
    	})(value));
    }
    çok teşekkür ederim kod çalıştı fakat şöyle bir sorunla karşılaştım, 30-40 adet veri için bu istekte bulununca tarayıcı kitleniyor. bunun çözümü var mıdır ya da aklınıza gelen bir tavsiye. Push ile kullanım önermişler ama.
  • 06-10-2015, 23:54:57
    #5
    Yavaşlık olması normal, hiç beklemeden sürekli veri gönderip alıyorsun çünkü. Performans istiyorsan checkbox değerlerini array'a atıp tek seferde post edip cevap almalısın.
    Bunun haricinde push veya deferred'te kullanabilirsin.
    Kodlarda yine syntax hatası olabilir, sen düzeltirsin.

    $(".chChildren input[type=checkbox]:checked").each(function(i, value) {
    	var id = $(value).val();
    	$('#sonuc'+id).html('<img src="images/loading.gif" />');
    	var veri = $('#mainForm'+id).serialize();
    	
    	var tarih_ileri = $('input[name=tarih_gir]').val();
    	var tarih_gir_date = $('input[name=tarih_gir_date]').val();
    	var tarih_gir_time = $('input[name=tarih_gir_time]').val();
    
    	requests.push($.ajax({
    		url: "partal.php",
    		type: "POST",
    		async: false,
    		cache: false,
    		data: veri
    	}));
    }
    
    $.when.apply(requests).done(function() {
    	for (i in requests) {
    		requests[i].success(function(data) {
    			$('#sonuc' + id).html('<button class="btn btn-info btn-xs" style="cursor:default">'+result+'</button>');
    		});
    	}
    });
    
    deferred = $.Deferred();
    $(".chChildren input[type=checkbox]:checked").each(function(i, value) {
    	var id = $(value).val();
    	$('#sonuc'+id).html('<img src="images/loading.gif" />');
    	var veri = $('#mainForm'+id).serialize();
    	
    	var tarih_ileri = $('input[name=tarih_gir]').val();
    	var tarih_gir_date = $('input[name=tarih_gir_date]').val();
    	var tarih_gir_time = $('input[name=tarih_gir_time]').val();
    
    	deferred.pipe(
        function(resp){
          return $.post("partal.php", {data: veri})
    		.done(function(content){ 
    			$('#sonuc' + id).html('<button class="btn btn-info btn-xs" style="cursor:default">'+result+'</button>');
    		})
        })
      )
    }
    deferred.resolve();
  • 07-10-2015, 13:09:25
    #6
    rob33n adlı üyeden alıntı: mesajı görüntüle
    Yavaşlık olması normal, hiç beklemeden sürekli veri gönderip alıyorsun çünkü. Performans istiyorsan checkbox değerlerini array'a atıp tek seferde post edip cevap almalısın.
    Bunun haricinde push veya deferred'te kullanabilirsin.
    Kodlarda yine syntax hatası olabilir, sen düzeltirsin.
    bu şekilde düzenledim ancak çalışmadı php konlarını da verdim.
    $('a.eklem').on('click', function(){
    $(".chChildren input[type=checkbox]:checked").each(function(i, value) {
    	var id = $(value).val();
    	$('#sonuc'+id).html('<img src="images/loading.gif" />');
    	var veri = $('#mainForm'+id).serialize();
    	
    	var tarih_ileri = $('input[name=tarih_gir]').val();
    	var tarih_gir_date = $('input[name=tarih_gir_date]').val();
    	var tarih_gir_time = $('input[name=tarih_gir_time]').val();
    if ($('input[name=tarih_gir]').is(':checked')) {
    var verix = veri+'&tarih_ileri='+tarih_ileri+'&tarih_gir_date='+tarih_gir_date+'&tarih_gir_time='+tarih_gir_time;
    }else{
     var verix = veri;
    }
    	requests.push($.ajax({
    		url: "partal.php",
    		type: "POST",
    		async: false,
    		cache: false,
    		data: verix
    	}));
    });
    
    $.when.apply(requests).done(function() {
    	for (i in requests) {
    		requests[i].success(function(result) {
    			$('#sonuc' + id).html('<button class="btn btn-info btn-xs" style="cursor:default">'+result+'</button>');
    		});
    	}
    });
    return false;
    });
    <a class="btn btn-info btn-sm eklem">Ekle</a>
    <span class="chChildren">
    <label class="label-checkbox">Seç: 
    <input type="checkbox" value="<?=$i;?>" name="sec" class="chk-row" />
    <span class="custom-checkbox"></span>
    </label>
    </span>


    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 13:09:25 -->-> Daha önceki mesaj 11:21:42 --

    $('a.eklem').on('click', function(){
    	 var requests = [];
    $(".chChildren input[type=checkbox]:checked").each(function(i, value) {
    	var id = $(value).val();
    	$('#sonuc'+id).html('<img src="images/loading.gif" />');
    	var veri = $('#mainForm'+id).serialize();
    	
    	var tarih_ileri = $('input[name=tarih_gir]').val();
    	var tarih_gir_date = $('input[name=tarih_gir_date]').val();
    	var tarih_gir_time = $('input[name=tarih_gir_time]').val();
    if ($('input[name=tarih_gir]').is(':checked')) {
    var verix = veri+'&tarih_ileri='+tarih_ileri+'&tarih_gir_date='+tarih_gir_date+'&tarih_gir_time='+tarih_gir_time;
    }else{
     var verix = veri;
    }
    	requests.push($.ajax({
    		url: "partal.php",
    		type: "POST",
    		async: false,
    		cache: false,
    		data: verix
    	}));
    $.when.apply($,requests).done(function() {
    	for (i in requests) {
    		requests[i].success(function(result) {
    			$('#sonuc' + id).html('<button class="btn btn-info btn-xs" style="cursor:default">'+result+'</button>');
    		});
    	}
    });
    });
    
    return false;
    });
    şeklinde yaptım şimdilik çalıştırdım.
  • 10-10-2015, 22:23:38
    #7
    hocam sakıncası php kod paylaşımı yaparmısınız. sorunun çözümünü paylaşıyım
  • 11-10-2015, 11:28:27
    #8
    FarkindaBiz adlı üyeden alıntı: mesajı görüntüle
    hocam sakıncası php kod paylaşımı yaparmısınız. sorunun çözümünü paylaşıyım
    Sorunu hallettim hocam rob33n in yazdigi kodtaki syntax hatalarini giderdim calistirdim. Tesekkur ederim

    GT-I9500 cihazımdan Tapatalk kullanılarak gönderildi
  • 13-10-2015, 17:28:17
    #9
    hocam işini çözmen güzel... ortama katkı sağlayın... link vs. verin inceliyelim olası karşıma çıkabilir