Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

Jquery ile ajaxtan gelen değeri değişkene almak

Merhaba.

Jquery ile form kontrolü yapıyorum. Ad alanı boş kalamaz, şifre 6 karakter olsun gibi. Ancak bütün kontroller doğru olarak sağlandığında ajax ile php dosyasından formun kontrol edildiğine ve post edilebileceğine dair bir değer gönderiyorum.(true gibi)
ancak gönderdiğim bu değeri mevcut sayfa içerisinde bir değişkene alamıyorum.
Örnek kod:
$.ajax({
	type: 'POST',
	url: 'kontrol.php',
	data: 'veriler',
	success: function(ajaxCevap) {
		$('#sonuc').html(ajaxCevap);
	}
});


buradaki ajaxcevap değerini deger = ajaxcevap şeklinde nasıl alabilirim?

Not:Sayfaya hidden input eklemeyi de denedim ancak gelen değer bu yöntemlede alınmıyor.
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • yunusy adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    9 cevap - 3 soru
     success: function(ajaxCevap) {
           deneme = ajaxCevap;
            $('#sonuc').html(ajaxCevap); 
        }

    Sorunuzu tam anlamadım ama sanırım böyle birşey istiyorsunuz. Bu çalışmaz ise;
    var deneme;
    $.ajax({
        type: 'POST',
        url: 'kontrol.php',
        data: 'veriler',
        success: function(ajaxCevap) {
           deneme = ajaxCevap
            $('#sonuc').html(ajaxCevap);
        }
    }); 

    şeklinde de deneyebilirsiniz
    • salbayrak adlı üyenin fotoğrafı salbayrak
      @yunusy arkadaşın yazdığı doğru sorun çıkmaz
      10 yıl önce yazılmış
    • GncArt adlı üyenin fotoğrafı GncArt
      Sorun, dinamik sayfadan gelen değerin jQuery tarafından okunamamamısıdır. Eğer PHP kullanıyorsanız sonuçları JSON olarak jQuery ile alabiliriz., örnek olarak formdan gelen verilerle bir mail gönderelim ve sonucunu JSON olarak yazdırıp sonuç alanında gösterelim.

      ...
      $echoTrue = "Gönderme başarılı olarak gerçekleşti.";
      $echoFalse= "Gönderme sırasında hata oluştu.";
      
      if(mail($to,$subject,$msg,$header)){
      	
      	echo '{"formStatus":true, "context":"'.$echoTrue.'"}';				
      	// Sonuc JSON verisi olarak tanımlandı.
      	
      }else{
      	
      	echo '{"formStatus":false, "context":"'.$echoFalse.'"}';				
      	// Sonuc JSON verisi olarak tanımlandı.
      	
      }
       



      AJAX kodumuz ise:
      $(document).ready(function(){
      		
      	$('#appSubmit').click(Appointment);
      	
      	function Appointment(){
      		$('.formResult').html('<img src="images/loading2.gif" />');
      	
      		var name = $('.fName').val();
      		var email = $('.fEmail').val();
      		var city = $('.fCity').val();
      		var phone = $('.fPhone').val();
      		var date = $('.fDate').val();
      		var time = $('.fTime').val();
      		var message = $('.fMessage').val();
      			
      		$.ajax({
      			type: 'POST',
      			url: 'includes/appform.php',
      			data:"name="+name+"&email="+email+"&city="+city+"&phone="+phone+"&date="+date+"&time="+time+"&message="+message,
      			dataType: 'json',			
      			success: function(sonuc){	
      				if (sonuc.formStatus){
      					// INFO IS TRUE
      					$('.formResult').fadeIn("slow");
      					$('.formResult').html('<div class="tamam"><img src="images/tamam.png" /><br />'+sonuc.context+'</div>');
      					$('.formResult').fadeOut(6000);
      				}else{
      					// INFO IS FALSE
      					$('.formResult').fadeIn("slow");
      					$('.formResult').html('<div class="hata"><img src="images/hata.png" /><br />'+sonuc.context+'</div>');
      					$('.formResult').fadeOut(6000);
      				}
      			}
      		});
      	
      	return false;
      	}
      
      });
       
      10 yıl önce yazılmış

Cevaplar

  • Kemal adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    63 cevap - 10 soru
    ajax ta göndermede problem yok fakat biraz eksik var
    data: '#veriler', şeklinde gönderilecek formun id sinni yazmanız gerekiyor. yoksa gönderemez.
    kontrol.php de alırken de
    normalde php de POST Metodunu alır gibi almanız yeterli olacaktır.