v2.5.2
Giriş yap

Ajax ve php kullanırken bir hata yapıyorum

ozermert26
777 defa görüntülendi

Merhaba arkadaşlar, php ve ajax ile örnekler yapıyorum. Ajax'a daha yeni başladım. Kodlarım çalışmıyor, nerede hata yaptığımı yazabilir misiniz?

php kodlarım

(adsbygoogle = window.adsbygoogle || []).push({});
<?php
if($_GET){
extract($_GET);
echo"Adınız: $ad";
}
?>```

## html & javaScript

<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Deneme</title>
<script src="jquery.js"></script>
<script src="javaScriptFunctions.js"></script>
</head>
<body>
<h1>Adınızı Girin</h1>
<form id="form" name="form">
<input name="ad" placeholder="Adınız"><br>
<input type="button" id="gonder" name="gonder">
</form>
<script>
document.getElementById('gonder').onclick=function(){
var form = $("#form").serialize();
$.ajax({
url:"denemeler.php",
type:"GET",
data:form
});
</script>
</body>
</html>`

Yardımcı olursanız çok sevinirim.

Cevap yaz
Cevaplar (12)
ozermert26
1040 gün önce

Merhaba arkadaşlar, aslında ajax en başından beri bizim verilerimizi gönderiyormuş fakat php bu isteği sonradan algılamıyorumuş. Sayfadan gelen yanıtı success ile kontrol ettiğimde bilgiler başarıyla kaydedildi ifadesini gördüm. Php, sayfa ilk açıldığında kontrol ettiği için sonraki girişlerde görmüyormuş maalesef.

ozermert26
1040 gün önce

Ayrıca ben javaScript'e çok yeni başlayan biri değilim. Artık ajax gibi şeyleri kullanacak kadar ilerlediğimi düşünüyorum.

ozermert26
1040 gün önce

Merhaba arkadaşlar. Neden söylediğimi anlamak istemiyorsunuz? Özellikle @mami'ye söylüyorum çünkü ben aynı kodlarla farklı bir url'den farklı bir form da gönderdim, yani sizlerin dediklerini de yaptım. Fakat nedense hala bana dosyaların farklı olması gerektiğini söylüyorsunuz. Bu arada yardımlarınız için teşekkürler.

makifgokce
1040 gün önce

@mami 'nin de söylediği gibi ajax ı farklı bir dosyada yaparsan sorun çözülecektir.
ajax.php dosyasına aşağıdakileri eklersen.

<?php
if($_POST){
extract($_POST);
if(empty($ad)||empty($eposta)){
echo'<div role="alert">Lütfen hiçbir alanı boş bırakmayın!</div>';
}
else
{
echo'<div role="alert">Bilgiler başarıyla kaydedildi</div>';
}
}
if(!isset($_POST)){
echo'Henüz veri Gönderilmedi';
}
?>

geriye dönen değer başarılıysa success ten alabilirsin.

    success: function(basarili) {
      alert(basarili);
    }
mami
1040 gün önce

hocam ajax requesti aynı sayfada yaparsanıź elbette sorun çıkacaktır. siz yapamıyorsanız niye başkalarının çözmesini bekliyorsunuz anlamıyorum.
bence javascriptte biraz ilerleyin, ondan sonra jquerye geçmek size daha faydalı olacaktır saygılar.

ozermert26
1041 gün önce

@makifgokce Ben aynı sayfadan aynı sayfaya bilgi alışverişi yapacağım için url yazmadım, normalde biliyorum. Fakat yazınca da değişmedi zaten, daha önce başka bir php dosyası oluşturup denemiştim url ile göndertmeyi ama onda da olmamıştı. Ya bu nasıl bir hata? Her yerde sordum fakat bir türlü çözemedik maalesef!

makifgokce
1041 gün önce

url'yi unutmuşum.
post işlemini yakaladığın yerin urlsini gir.
Örnek:

$("#gonder").click(function(gonder) {
  var denemeFormu = $("#denemeFormu").serialize();
  $.ajax({
    url: "ajax.php",
    type: "POST",
    data: denemeFormu,
    error: function(error) {
      alert("Bilgiler gönderilirken bir hata oluştu: " + error);
    },
    success: function(basarili) {
      alert("Bilgiler başarıyla gönderildi");
    }
  });
});
ozermert26
1041 gün önce

Bu arada ben type kısmını GET olarak da değiştirdim fakat get ile de göndermedi. Yani ajax'da bir sıkıntı var.

ozermert26
1041 gün önce

@makifgokce Senin kodunu işi sağlama almak için kopyaladım. Bana bilgiler başarıyla gönderildi diyor fakat maalesef php bunu hala algılamıyor. Ben tüm dosyanın kodunu paylaşıyorum. Kaç gündür durumun içinden çıkamadım, yardımcı olursanız sevinirim. Kod:

<?php
if($_POST){
extract($_POST);
if(empty($ad)||empty($eposta)){
echo'<div role="alert">Lütfen hiçbir alanı boş bırakmayın!</div>';
}
else
{
echo'<div role="alert">Bilgiler başarıyla kaydedildi</div>';
}
}
if(!$_POST){
echo'Henüz veri Gönderilmedi';
}
?>
<!DOCTYPE html>
<html lang="tr">
<head>
 <meta charset="UTF-8">
 <meta http-equiv="X-UA-Compatible" content="IE=edge">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <title>Denemeler</title>
<script src="jquery-3.6.0.js"></script>
<script src="javaScriptFunctions.js"></script>
</head>
<body>
 <form id="denemeFormu" name="denemeFormu">
<label>Adınız: <input name="ad" id="ad" placeholder="Adınızı girin"></label><br>
<label>e-posta: <input type="email" placeholder="e-posta adresiniz" name="eposta" id="eposta"></label><br>
<button type="button" id="gonder" name="gonder">Tamam</button>
 </form>
<script>
$("#gonder").click(function(gonder) {
  var denemeFormu = $("#denemeFormu").serialize();
  $.ajax({
    type: "POST",
    data: denemeFormu,
    error: function(error) {
      alert("Bilgiler gönderilirken bir hata oluştu: " + error);
    },
    success: function(basarili) {
      alert("Bilgiler başarıyla gönderildi");
    }
  });
});
</script>
</body>
</html>

Sevgiler

makifgokce
1041 gün önce

@ozermert26 verdiğin linkteki kodu inceledim <script> tagları içerisindeki success'in karşısındaki süslü parantezlerin sonunda noktalı virgül ; vardı.Aşağıdaki gibi yaparsan çalışacaktır.

$("#gonder").click(function(gonder) {
  var denemeFormu = $("#denemeFormu").serialize();
  $.ajax({
    type: "POST",
    data: denemeFormu,
    error: function(error) {
      alert("Bilgiler gönderilirken bir hata oluştu: " + error);
    },
    success: function(basarili) {
      alert("Bilgiler başarıyla gönderildi");
    }
  });
});
ozermert26
1041 gün önce

@mami Merhaba, öncelikle bu faydalı bilgiler için çok teşekkür ederim. JQuery'nin

$("#id").click(function(){
// kodlar

gibi işlevlerini yukarıda gösterdiğim şekilde yaptığım halde de çalışmamıştı. Neden çalışmadığını bir türlü çözemedim. Bir de ben javaScript'e yeni başladım demedim ki, tamam, başlayalı çok uzun zaman olmadı ama artık ajax'a başlamam gerektiğini düşündüm. Teşekkürler. Bu arada, Şu linkten yaptığım yeni ajax çalışmasının kaynak kodlarını görebilir ve eğer bir hata keşfederseniz ve yazarsanız sevinirim çünkü hala çalışmıyor.

mami
1041 gün önce

hocam javascript öğrenmeden yapmak zor olur. öğrenmeden yapmayın.
koda gelirsek, jqueryide
$('#id').click(function(){ //işlemler })veya $('#id').on('click',function(){ //işlemler })
şeklinde olur.
ajax ise toplam 4 tane sabit parametre alır.
bunlar:
url, data, type, success'dır.
kullanımı:
$.ajax({ url: 'ajax.php', type: 'post', data: data, success: function(response){ //işlemler } })
şeklindedir.
size önerim, yazdıklarımı okuyup anladıktan sonra javascript dersine başlamanız.
öğrenmeden deneyimleyerek yapmak size zaman kaybettirir.
iyi günler!