Hata, "body" değişkeninin değerinin "CKEDITOR.instances['body'].getData();" ile alınmasına rağmen kontrol edilirken "document.getElementById('body').value" ile alınması. Ayrıca, "includes" fonksiyonunun yerine "indexOf" kullanılması daha doğru olacaktır.
Düzeltilmiş kod parçası aşağıdaki gibidir:
if (body.indexOf("Bölüm Adı") !== -1) {
Swal.fire({
icon: 'warning',
title: 'Uyarı!',
text: 'Lütfen "Bölüm Adı" yerine gerçek bölüm adını kullanınız.',
confirmButtonText: 'Tamam',
})
return;
}
Ayrıca:
Swal.fire({
title: 'Dikkat!',
text: 'Duyuru yayınlamak üzeresiniz. Bu yayınlayacağınız duyuru tüm kişilere E-Mail olarak gidecektir. İşlemi onaylıyor musunuz?',
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Evet, gönder.',
cancelButtonText: 'Hayır, iptal et!'
}).then((result) => {
if (result.value) {
// Form verilerini alın
var title = document.getElementById('title').value;
var body = CKEDITOR.instances['body'].getData();
var category_id = document.getElementById('category_id').value;
// POST isteği gönderin
$.ajax({
url: "duyuru_ekle_islem.php",
type: "POST",
dataType: "JSON",
data: {title: title, body: body, category_id: category_id},
success: function(json){
toastr.success(json.post.msg);
}
});
}
});
Bu değişiklikler ile if koşulları çalışacaktır.
PHP - "X" kelimeyi içeriyorsa uyarı vermek istiyorum.
10
●240
- 28-01-2023, 10:53:29Görünüşe göre, "bodyBolumKontrol" değişkeninde kullandığınız "document.getElementById("body").textContent" kodu, CKeditor içerisinde yazdığınız metnin HTML etiketlerini de içerir. Bu nedenle "Bölüm Adı" ibaresini aramakta zorluk yaşıyorsunuz. Bunun yerine, CKeditor içerisinde yazdığınız metnin HTML etiketlerinden arındırılmış halini almak için "CKEDITOR.instances['body'].document.getBody().getText()" kodunu kullanabilirsiniz.turansonkaya adlı üyeden alıntı: mesajı görüntüle
Önerim, eklediğiniz kodları kontrol edip, belirttiğim gibi değiştirmeniz olacaktır.