Php'den gelen yanıta göre javaScript'e işlem yaptırmak
Merhaba arkadaşlar. Ben ajax ile bir formu post ediyorum. Php ile bazı kontroller ve veri tabanı işlemleri gerçekleştiriliyor. Ama javaScript'in php'den gelen yanıta göre işlem yapmasını istiyorum. Bir üyelik formu oluşturduğumuzu var sayarsak;
- Kullanıcı üyelik formunu açacak.
- Tüm bilgileri dolduracak.
- Bilgiler doldurulduktan sonra php bilgileri kontrol edecek ve kullanıcıyı bilgilendirecek.
- JavaScript ile gelen yanıt ekrana bastırılacak.
- Bu aşamada php, bilgileri kabul ederse sayfayı jQuery load() işleviyle yeniden yüklemek istiyorum. Aslında php'den gelen yazıyı bir if sorgusuyla kontrol edebilirim ama bunun dışında yapabileceklerim nelerdir? Çünkü her zaman echo ile yanıt bastırılmayabilir.
Teşekkürler
Javascript tarafında php de yapılan bir işlem sonucu aksiyon alabilmek için php tarafının bir yanıt döndürmesi gerekir. Ajax tarafında kullanıcı ormu gönder dediği anda bir beforeSend fonksiyonu ile 'yükleniyor', 'Lütfen bekleyin..' tarzı uyarı verdirilebilir. Sonrasında success ve/veya error fonksiyonunda (veya done ve/veya catch motodunda) işlemin tamamlandığını yakalanabilir. php tarafından bir yanıt dönmezse success durumunda en azından javascript sonucun ne olduğunu bilemez. Belki gelen herhangi bir yanıt yoksa sayfayı yine de yenilemek isteyebilirsin. Php'den yanıt gelirse de yanıtın da json şeklinde olması işinizi daha kolaylaştırabilir. Örneğin
$response = [
'status' => true,
'text' => 'İşlem başarılı' // Veya javascript tarafından ekrana bastırmak isteyeceğiniz herhangi bir yazı
];
// Başarısız ise de
$response = [
'status' => false,
'text' => 'Hata oluştu'
];
echo json_encode($response);
Ajax için de dataType: 'json'
yazarsanız success fonksiyonunda yakalaması daha kolay olur.
$.ajax('ajax.php', {
data: {
veri: ...
},
dataType: 'json'
}).done(response => {
if (response.status){
// sonuç başarılı olmuşsa yapılacak işlemler
// response.text i ekrana yazdır
} else {
// php den gelen yanıt olumsuz ise yapılacak işlemler
}
}).catch(err => {
// ajax işleminde meydana gelebilecek hatalar
})
Muhtemelen zaten bildiğiniz şeyleri anlattım ama kullanıcıya bilgi vermek istiyorsanız php nin bir yanıt döndürmesi gerektiğini anlatmak istedim. Dönmezse de javascript in bunu anlayıp ona göre hareket etmesi gerekir.