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");
}
}
})
}
} Ajax , Php post işlemi
9
●2.006
- 06-09-2013, 00:49:53Merhaba 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 ?
- 06-09-2013, 01:04:33Hocam ö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:09Hocam gelen degerleriMirzakul adlı üyeden alıntı: mesajı görüntüle
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:27Bu ş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Üyeliği durdurulduAynı 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:53:08@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Ü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:47Dediğiniz gibi hepsini hocam bir sonuç alamadım? adrese profil.php?islem=guncelle girdiğimde herhangi bir hata satırı almıyorumaktekno adlı üyeden alıntı: mesajı görüntüle