Hocam kusura bakmayın fakat o işler öyle olmuyor, madem bilmiyorsunuz alın hazır kullanın, bu tür orta-ileri seviye javascript bilgisi gerektiren şeylerle javascript bilmeden başa çıkılamaz.
$(function() {
$(this).on("click", "#test", function(e) {
alert("xx")
});
});
Şimdi baştan başlayalım.
$(document).ready(function() {
})
kullanılışı jquery 3.0 dan sonra kaldırıldı bunun yerine
$(function(){
})
kullanımı tavsiye ediliyor.
2.olarak
$(selector).click(function() {})
kullanımı jquery 3.3 den sonra kaldırıldı bunun yerine on metodunu kullanmanız tavsiye ediliyor
$(selector).on("click", function() {})
Şimdi sorununuza gelecek olursak,
sayfaya dinamik olarak yüklenen html kodlarında bir event işlemi dinleyecekseniz bunun için on metodunu biraz daha farklı kullanmanız gerekecek. Aşağıdaki resimde göreceğiniz üzere bu metodun bir kullanım şekli de ikinci parametre olarak seçiciyi girmektir.
success fonksiyonu içerisindeki this, ajax ı temsil ediyor, arrow fonksiyonlarda this kavramı olmadığı için success fonksiyonunda arrow function kullanırsanız bir üstteki fonksiyonu işaret etiş olursunuz. Yani kodu şu şekilde düzenleyin;
$('.loginForm').on('submit',function (e) {
e.preventDefault();
let data=$(this).serialize();
$(this).find('button').prop('disabled', true);
$.ajax({
url: 'ajx/asd/dd.php',type: 'POST',data: data,
success: data => {
if(data == 1){
window.location.href='./';
}else{
$.formAlert(data,'.loginForm');
$(this).find('button').prop('disabled',false);
}
}
});
});
Daha detaylı bilgi için Bakınız
ya da alternatif olarak
$('.loginForm').on('submit',function (e) {
e.preventDefault();
let $this = $(this),
data = $this.serialize()
$this.find('button').prop('disabled', true);
$.ajax({
url: 'ajx/asd/dd.php',type: 'POST',data: data,
success: function (data) {
if(data == 1){
window.location.href='./';
}else{
$.formAlert(data,'.loginForm');
$this.find('button').prop('disabled',false);
}
}
});
});
$('.loginForm').on('submit',function (e){
e.preventDefault();
//Aşağıda görüldüğü gibi .loginForm yazmak yerine this yazarak ilgili formu seçtim
let data = $(this).serialize();
// Eğer bu buton form ögesinin bir seviye altında ise yani direkt olarak çocuğu ise
$(this).children("button").prop('disabled', true);
// Ya da bu buton form ögesinin içerisinde bir yerlerde ise (çocuk, torun veya daha aşağısı)
$(this).find("button").prop('disabled', true);
alert()
})
Sayfanın head tagları içerisinde;
<?php
$tarihler = ['10-29', '04-23', '05-19', '08-30', '01-26']; // m-d formatında (ay-gün)
if (in_array(date('m-d'), $tarihler)) { ?>
<style>
body {
background-color: rebeccapurple;
}
</style>
<?php }
Sayfada hata olmasını hiçbir geliştirici istemez. Bu hataları daha geliştirme aşamasında fark edip düzeltmek için gelişmiş bir IDE kullanmanız gerekiyor. Bunun için PHPStorm bulunmaz bir nimet, (VScode için de bazı eklentileri kurduktan sonra oluyor fakat ne kadar uğraştıysam PHPStorm kadar iyi hata ayıklama yaptıramadım). Bunun için varsa sizin yoksa bir tanıdğınızın üniversite e posta adresini kullanarak PHPStorm'u bir yıllığına ücretsiz edinebilirsiniz. Şiddetle tavsiye edilir.
Öte yandan illa bir hata yakalama olayı yapacaksanız bir Exception sınıfı yazabilirsiniz. Bunun için PHP'nin yerleşik Exception sınıfından türetilen (extends) bir Exception sınıfı oluşturmanız gerekiyor. Hata çıkarabilecek kodlarınızı da try catch ile sarmalayıp bu sınıf üzerinden gerekli yönlendirme/basit hata gösterme işlemlerini yaptırabilirsiniz.