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

Form kontrol'de ufak bir sorun

Merhaba arkadaşlar kendim bir form kontrol yapıyorum yanlız takıldığım bir nokta var.

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;
											}
									}
							});
							
						}
				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){$("#kayitform").submit();}
			}


Yukarıdaki kodları formumun submit onclik'ine ekliyorum form onsubmit değerine de false veriyorum yukarıdaki kodu şu şekilde yaptığımda form kontrol sorunsuz çalışıyor ;

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;
											}
									}
							});
							
						}
				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){$("#kayitform").submit();}
			}


Ama satırı aktif edince sorgulamayı beklemeden doğrulayıp yolluyor formu yardımcı olan arkadaşlara şimdiden teşekkürler.
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • Hasan adlı üyenin fotoğrafı
    11 yıl önce yazılmış
    63 cevap - 0 soru
    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 adlı üyenin fotoğrafı 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 adlı üyenin fotoğrafı 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 adlı üyenin fotoğrafı 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 adlı üyenin fotoğrafı 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 adlı üyenin fotoğrafı eozgilik
      İlginiz için teşekkürler ama ne yazıkki hiç bir hata yokken formu post etmiyor
      11 yıl önce yazılmış
    • Hasan adlı üyenin fotoğrafı 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 adlı üyenin fotoğrafı eozgilik
      Gönderdiğiniz dosyada kontrol.php den kontrol yapmadan direk yolluyor
      11 yıl önce yazılmış
    • Hasan adlı üyenin fotoğrafı 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 adlı üyenin fotoğrafı 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 adlı üyenin fotoğrafı Hasan
      " async: false, " ekleyip dener misin alttaki gibi..

      jQuery.ajax({
          type:'POST',
          async: false,
      
      11 yıl önce yazılmış
    • eozgilik adlı üyenin fotoğrafı 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ı.