• 06-09-2013, 00:49:53
    #1
    Merhaba ajax ile sayfa yenilenmeden veriyi güncelliyorum. Yapmak istediğim $.ajax altında bulunan url:update.php gitmesin yani bu işlem ikinci bir sayfada ihityac olmasın aynı sayfada olsun bütün kodlarım. güncelleme kodlarımda bu sayfada olsun bunu nasıl sağlarım ?
    function deneme () {
    		//Tanımlı değişkenlerin trim fonk. ile kontrolleri yapılıyor
    	else{
    var degerler = "kadi="+kadi+"&sifre="+sifre+"&eposta="+eposta;
    
    				$.ajax({
    					type:"POST",
    					url:"update.php", 
    					data:degerler,
    					success: function(sonuc){
    						if(sonuc=='ok'){
    								alert("Başarıyla eklendi");
    						}else if(sonuc=='hata'){
    							alert("Bir hata oluştu");
    						}
    					}
    				})
    			}
    		}
  • 06-09-2013, 01:04:33
    #2
    Hocam öncelikle
    data:$('#formunuzun-id-degeri').serialize(),
    Formu bu şekilde gönderin bence sorunuza gelince
    url:"update.php?islem=guncelle",
    olarak değiştirin update.php'ye de
    if (isset ($_GET['islem']) ) { 
    $islem = $_GET['islem'];
     if($islem=="guncelle"):
     echo $_POST["kadi"];
     //diger değişkenler vs.
     endif;
    }
    Tarzında bir ekleme yaparsanız sanırım istediğiniz gibi olur.
  • 06-09-2013, 01:16:09
    #3
    Mirzakul adlı üyeden alıntı: mesajı görüntüle
    Hocam öncelikle
    data:$('#formunuzun-id-degeri').serialize(),
    Formu bu şekilde gönderin bence sorunuza gelince
    url:"update.php?islem=guncelle",
    olarak değiştirin update.php'ye de
    Hocam gelen degerleri
    var degerler = "kadi="+kadi+"&sifre="+sifre+"&eposta="+eposta;
    alıyordum data:degerler, diyordum bunu sizin yapmış olduğunuz islemde nasıl uygularım
  • 06-09-2013, 01:21:27
    #4
    Bu şekilde de kullanabilirsiniz kolaylık açısından öyle kullanırsanız daha iyi olur tüm formu serialize edip gönderir tek tek elinizle yazmanıza gerek kalmaz diye söyledim.

    				$.ajax({
    					type:"POST",
    					url:"update.php", 
    					data:$('#formunuzun-id-degeri').serialize(),
    					success: function(sonuc){
    Bu şekilde yapmanız yeterli var degerler = kadi="+kadi+"&sifre="+sifre+"&eposta="+eposta; bu kısmı silebilirsiniz. Bir önce ki verdiğim örneği de kullanacaksınız url:"update.php?islem=guncelle" şeklinde değiştirmelisiniz.
  • 06-09-2013, 01:24:51
    #5
    Üyeliği durduruldu
    Aynı sayfada çalıştırdığınızda, atıyorum index.php?islem=guncelle diyerek post edebilirsiniz. Ancak bunda küçük bir eksik olur. Yani sitenize zarar vermek isteyen biri "index.php?islem=guncelle" sayfasına farklı bir formdan post işlemi gerçekleştirebilir. Ne kadar işe yarar bilmiyorum ama ben genelde bu tür sayfalarda şu fonksiyonu kullanıyorum.

    <?php 
    function ajax_securty(){
    	if (empty($_SERVER['HTTP_REFERER'])){
    		exit;
    	}else{
    		$control = strpos($_SERVER['HTTP_REFERER'],'http://www.siteadresi.com');
                    $control2 = strpos($_SERVER['HTTP_REFERER'],'http://siteadresi.com');
    		if ($control === false and $control2 === false){
    			exit;
    		}
    	}
    }
    ?>
    bu fonksiyonu şu şekilde kullanabilirsiniz.

    if (isset ($_GET['islem']) ) {  
        $islem = $_GET['islem']; 
        if($islem=="guncelle"){
              ajax_securty();
              // işlemler
        }
    }

    bu fonksiyon sayesinde post edilen sayfa yani referer adresi sizin siteniz dışından geliyorsa sayfanın çalışmasını durduracak ve post işlemi gerçekleştirmeyecek.




    Yani güzel bir deneme.php sayfası yazarsak şöyle olur
    <?php 
    function ajax_securty(){
    	if (empty($_SERVER['HTTP_REFERER'])){
    		exit;
    	}else{
    		$control = strpos($_SERVER['HTTP_REFERER'],'http://www.siteadresi.com');
                    $control2 = strpos($_SERVER['HTTP_REFERER'],'http://siteadresi.com');
    		if ($control === false and $control2 === false){
    			exit;
    		}
    	}
    }
    
    if (isset($_GET['islem'])){
    	if ($_GET['islem'] == 'guncelle'){
    		ajax_securty();
    		// yapılacak işlemler
    	}
    }
    ?>
    <html>
    <head>
    <script type="text/javascript">
    function deneme() {
    	$.ajax({
    		type:"POST",
    		url:"deneme.php?islem=guncelle", 
    		data:$('#deneme_form').serialize(),
    		success: function(sonuc){
    			if(sonuc=='ok'){
    				alert("Başarıyla eklendi");
    			}else if(sonuc=='hata'){
    				alert("Bir hata oluştu");
    			}
    		}
    	});
    }
    </script>
    </head>
    <body>
    <form id="deneme_form" onsubmit="return false;" method="post">
    	<input type="text" name="k_adi" />
    	<input type="submit" value="gönder" onClick="deneme()" />
    </form>
    </body>
    </html>
  • 06-09-2013, 01:37:53
    #6
    Sayfanızın en başına;
    <?php
    if($_POST)
    {
    // buraya update.php deki kodlar
    
    exit;
    }
    ?>
    bu şekilde bir kod ekleyip, ajax yenileme işleminide aynı sayfaya gönderirseniz bu şekilde işe yarayacaktır. Bence en basit yöntem bu
  • 06-09-2013, 01:53:08
    #7
    @aktekno hocam dediğiniz şöyle bir işlem cıktı ortaya bu tek başına profil.php dosyası çalışmadı buttona tıkladığımda bir işlem gerçekleşmiyor.
    if (isset($_GET['islem'])){ 
        if ($_GET['islem'] == 'guncelle'){ 
            ajax_securty(); 
            $kadi=$_POST['kadi'];
    		$sifre=$_POST['sifre'];
    		$eposta=$_POST['eposta'];
    		$update=mysql_query("update uye set kadi='$kadi',sifre='$sifre'");
    			if($update){
    				echo 'ok';
    			}else{
    				echo 'hata';
    			} 
        } 
    } 
    ?>
    --javascript--
    <script type="text/javascript">
    	function profil(){
    			var kadi=$("input[name=kadi]").val();
    			kadi==$.trim(kadi);
    		
    		var sifre=$("input[name=sifre]").val();
    			sifre==$.trim(sifre);
    
    		var eposta=$("input[name=eposta]").val();
    			eposta==jQuery.trim(eposta);
    			
    			if(!kadi){
    				alert("Kullanici adini giriniz");
    			}else if(!sifre){
    				alert("Sifre giriniz");
    			}else if(!eposta){
    				alert("Eposta giriniz");
    			}else{
    				$.ajax({ 
           				 type:"POST", 
           				 url:"profil.php?islem=guncelle",  
           				 data:$('#profil_duzenle').serialize(), 
    					 success: function(sonuc){ 
    		            if(sonuc=='ok'){ 
    		                alert("Başarıyla eklendi"); 
    		            }else if(sonuc=='hata'){ 
    		                alert("Bir hata oluştu"); 
    		            } 
            		} 
        }); 
    			}
    	}
    
    </script>
    ---form---
    <form  method="post" onsubmit="return false;" id="profil_duzenle()">
  • 06-09-2013, 02:22:36
    #8
    Üyeliği durduruldu
    function ajax_securty(){ 
        if (empty($_SERVER['HTTP_REFERER'])){ 
            exit; 
        }else{ 
            $control = strpos($_SERVER['HTTP_REFERER'],'http://www.siteadresi.com'); 
                    $control2 = strpos($_SERVER['HTTP_REFERER'],'http://siteadresi.com'); 
            if ($control === false and $control2 === false){ 
                exit; 
            } 
        } 
    }
    Öncelikle yukarıdaki fonksiyonu sayfanın başına yazdığınıza emin olun.

    Sonrasında formunuzda hata var. Formunuz şu şekilde olacak.
    <form  method="post" onsubmit="return false;" id="profil_duzenle">
    ....form inputları.....
    <input type="submit" value="Gönde Butonu" onClick="profil()" />
    </form>
    Yani form ID'sine "serialize()" fonksiyonundaki ID adresi yazılacak. Sonra da gönder dediğiniz butonun onclick adresine Ajax fonksiyonu yazılacak.
  • 06-09-2013, 02:25:47
    #9
    aktekno adlı üyeden alıntı: mesajı görüntüle
    Yani form ID'sine "serialize()" fonksiyonundaki ID adresi yazılacak. Sonra da gönder dediğiniz butonun onclick adresine Ajax fonksiyonu yazılacak.
    Dediğiniz gibi hepsini hocam bir sonuç alamadım? adrese profil.php?islem=guncelle girdiğimde herhangi bir hata satırı almıyorum