Doğru Cevap
-
error boolean tanımlamışsın en alttaki kontrolünde de bunu error değişkeninin tipine göre kontrol ettirirsen olur gibi...
if(error === false){ $("#kayitform").submit(); }
-
eozgilik
Yok sorun o değil mesela isimsogula fonksiyonunu çağırdığım yerin alt satırına return false; yazdığım zaman kullanıcı adını kontrol ediyor ama kullanıcı adı kullanılabilirse return false olduğu için submit işlemini yapmıyor. Yani sorun php dosyasından sorgulamasını beklemeden direk işleme geçmesi.11 yıl önce yazılmış -
Hasan
Hmm..
isimsorgula fonksyionunda gelen sonuca göre return true/false döndürüp, if(isimsorgula(kadi) == true){ return true; } return false; şeklinde deneyebilirsin.11 yıl önce yazılmış -
eozgilik
function isimsorgula(q){ jQuery.ajax({ type:'POST', url:'inc/kontrol.php', data:'kadi='+ q, success:function(e){ if(e=="1"){ $('#kullaniciadierror').html("Kullanıcı adında türkçe karakter kullanmayınız."); $('#kullaniciadi').css('border','1px solid #fada00'); $('#kullaniciadi').focus(); error = true; } } }); return false; // BURAYA BUNU KOYDUĞUMDA KONTROL EDİYOR AMA GÖNDERMİYOR FALSE OLDUĞU İÇİN }
Yukarıdaki gibi yapınca kontrol gerçekleşiyor ama false değeri olduğu için gönderme işlemi yapılmıyor.11 yıl önce yazılmış -
Hasan
function validate(){ var error = false; var kadi = $("#kullaniciadi").val(); function isimsorgula(q){ jQuery.ajax({ type:'POST', url:'inc/kontrol.php', data:'kadi='+ q, success:function(e){ if(e=="1"){ $('#kullaniciadierror').html("Kullanıcı adında türkçe karakter kullanmayınız."); $('#kullaniciadi').css('border','1px solid #fada00'); $('#kullaniciadi').focus(); error = true; return false; // Hata olduğu için işlemi durdur. }else{ return true; // Hata yok devam.... } } }); } if(kadi==''){ $('#kullaniciadierror').html("Lütfen kullanıcı adını giriniz."); $('#kullaniciadi').css('border','1px solid #fada00'); $('#kullaniciadi').focus(); error = true; }else if(kadi.length<5 || kadi.length>20){ $('#kullaniciadierror').html("Kullanıcı adı 5 ile 20 karakter arasında olmalıdır."); $('#kullaniciadi').css('border','1px solid #fada00'); $('#kullaniciadi').focus(); error = true; }else{ if(isimsorgula(kadi) === true) error = false; else error = true; } if(error === false){ $("#kayitform").submit(); } }
Eğer isim sorgulamadan true dönerse hata yok demektir, error = false ama false dönerse hata vardır buda eşittir error = true.11 yıl önce yazılmış -
eozgilik
İlginiz için teşekkürler ama ne yazıkki hiç bir hata yokken formu post etmiyor11 yıl önce yazılmış -
Hasan
Test etme fırsatım oldu, şimdi baktım şu şekilde çalışıyor. Test ettiğim dosyayı yazıyorum daha anlaşılır olur sanırım.
<html> <head> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <script type="text/javascript"> function validate(){ var error = false; var kadi = $("#kullaniciadi").val(); function isimsorgula(q){ jQuery.ajax({ type:'POST', url:'kontrol.php', data:'kadi='+ q, success:function(e){ if(e=="1"){ $('#kullaniciadierror').html("Kullanıcı adında türkçe karakter kullanmayınız."); $('#kullaniciadi').css('border','1px solid #fada00'); $('#kullaniciadi').focus(); error = true; kullaniciKontrol(false); }else{ error = false; kullaniciKontrol(true); } } }); } if(kadi==''){ $('#kullaniciadierror').html("Lütfen kullanıcı adını giriniz."); $('#kullaniciadi').css('border','1px solid #fada00'); $('#kullaniciadi').focus(); error = true; }else if(kadi.length < 5 || kadi.length>20){ $('#kullaniciadierror').html("Kullanıcı adı 5 ile 20 karakter arasında olmalıdır."); $('#kullaniciadi').css('border','1px solid #fada00'); $('#kullaniciadi').focus(); error = true; }else{ isimsorgula(kadi); } function kullaniciKontrol(status){ if(status == true) error = false; else error = true; } if(error == false){ $("#kayitform").submit(); } return false; } </script> </head> <body> <form id="kayitform" action="" method="post"> <input id="kullaniciadi" type="text" /> <div id="kullaniciadierror"></div> <input type="submit" onclick="validate(); return false;" value="Gönder" /> </form> </body>
</html>11 yıl önce yazılmış -
eozgilik
Gönderdiğiniz dosyada kontrol.php den kontrol yapmadan direk yolluyor11 yıl önce yazılmış -
Hasan
Yapıyor,
<?php
if($_REQUEST['kadi'] == 'Hasan'){ echo '1'; }else{ echo '0';}
?>
kontrol.php içine bunu yaz. Eğer Hasan yazarsan input'a uyarı veriyor. Çünkü sen gelen data 1 ise uyarı vermişsin, bende ona göre karaladım.11 yıl önce yazılmış -
eozgilik
Bu form dosyası ;
<html> <head> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <script type="text/javascript"> function validate(){ var error = false; var kadi = $("#kullaniciadi").val(); function isimsorgula(q){ jQuery.ajax({ type:'POST', url:'inc/kontrol.php', data:'kadi='+ q, success:function(e){ if(e=="1"){ $('#kullaniciadierror').html("Kullanıcı adında türkçe karakter kullanmayınız."); $('#kullaniciadi').css('border','1px solid #fada00'); $('#kullaniciadi').focus(); error = true; kullaniciKontrol(false); }else{ error = false; kullaniciKontrol(true); } } }); } if(kadi==''){ $('#kullaniciadierror').html("Lütfen kullanıcı adını giriniz."); $('#kullaniciadi').css('border','1px solid #fada00'); $('#kullaniciadi').focus(); error = true; }else if(kadi.length < 5 || kadi.length>20){ $('#kullaniciadierror').html("Kullanıcı adı 5 ile 20 karakter arasında olmalıdır."); $('#kullaniciadi').css('border','1px solid #fada00'); $('#kullaniciadi').focus(); error = true; }else{ isimsorgula(kadi); } function kullaniciKontrol(status){ if(status == true) error = false; else error = true; } if(error == false){ $("#kayitform").submit(); } return false; } </script> </head> <body> <form id="kayitform" action="" method="post"> <input id="kullaniciadi" type="text" /> <div id="kullaniciadierror"></div> <input type="submit" onclick="validate(); return false;" value="Gönder" /> </form> </body> </html>
Kontrol.php ;
<?php if($_POST['kadi'] == 'Hasan'){ echo '1'; }else{ echo '0';} ?>
Hasan yazdığımda kontrol etmiyor post ediyor. bir yanlış var sanırım sizde oluyorsa.11 yıl önce yazılmış -
Hasan
" async: false, " ekleyip dener misin alttaki gibi..
jQuery.ajax({ type:'POST', async: false,
11 yıl önce yazılmış -
eozgilik
Eyw kardeşim ufak bir kod ile iş bitti :) Kodun tamamı aşağıda ihtiyacı olan varsa ;
function validate(){ var error = false; var kadi = $("#kullaniciadi").val(); function isimsorgula(q){ jQuery.ajax({ type:'POST', async: false, url:'inc/kontrol.php', data:'kadi='+ q, success:function(e){ if(e==1){ $('#kullaniciadierror').html("Kullanıcı adında türkçe karakter kullanmayınız."); $('#kullaniciadi').css('border','1px solid #fada00'); $('#kullaniciadi').focus(); error = true; } } }); } if(kadi==''){ $('#kullaniciadierror').html("Lütfen kullanıcı adını giriniz."); $('#kullaniciadi').css('border','1px solid #fada00'); $('#kullaniciadi').focus(); error = true; }else if(kadi.length < 5 || kadi.length>20){ $('#kullaniciadierror').html("Kullanıcı adı 5 ile 20 karakter arasında olmalıdır."); $('#kullaniciadi').css('border','1px solid #fada00'); $('#kullaniciadi').focus(); error = true; }else{ isimsorgula(kadi); } if(error == false){ $("#kayitform").submit(); } }
11 yıl önce yazılmış
-
Cevaplar
Hiç cevap bulunamadı.