jQuery ile İletişim Formu Doğrulaması

Bil­di­ği­niz gibi PHP ile ile­ti­şim formu yap­tı­ğı­nızda eğer JavaSc­ript kul­lan­ma­dıy­sa­nız form doğ­ru­lan­dı­ğında (yani mesaj başa­rılı ola­rak gön­de­ril­di­ğinde veya zorunlu alan­lar­dan birisi boş bıra­kıl­dı­ğında) sayfa deği­şi­yor. İşte bu yazıda bir­kaç satır JavaSc­ript kodu ile siz­lere sayfa değiş­me­den form doğ­ru­la­ması yap­mayı anlatacağım.

Yazıya baş­la­ma­dan önce PHP ile­ti­şim for­mu­nun nasıl çalış­tı­ğını şu say­fa­daki 2. adıma bak­ma­nızı öneriyorum.

Şimdi gele­lim anla­tıma. Önce­likle bir adet HTML dos­ya­mız olmalı, ile­ti­şim for­mu­mu­zun oluş­tu­ra­ca­ğı­mız bir HTML dosyası.

HTML:

<!--FORM-->  
  <div class="fieldset">
    <form name="myform" id="myform" action="" method="post">
       <p>
           <label for="name">Full Name:</label><br />
           <input type="text" name="name" id="name" /><br /><br />
       </p>
       <p>
          <label for="email">E-Mail:</label><br />
           <input type="text" name="email" id="email" /><br /><br />
       </p>
       <p>
           <label for="subject">Subject:</label><br />
           <input type="text" name="subject" id="subject" /><br /><br />
       </p>
       <p>
          <label for="message">Message:</label><br />
          <textarea name="message" id="message" cols="45" rows="5"></textarea>
       </p><br />
       <p><input type="submit" name="button" id="button" value="Send" />
       </p>
       </form>
       <div id="results"></div><!-- Uyarı yazısının çıkacağı yer -->
  </div><!--FIELDSET-->  
<!--FORM-->

Daha sonra gonder.php adını vere­ce­ği­miz ve ile­ti­şim for­mu­mu­zun çalış­ma­sını sağ­la­ya­cak olan PHP dos­ya­sını oluşturalım.

PHP:

<?php
$lang = "Content-Type: text/plain; charset=UTF-8n"; 
$name=$_POST["name"];
$email=$_POST["email"];
$subject=$_POST["subject"];
$message=$_POST["message"];
 
$sendmail="isminiz@isminiz.com";  //e-mail adresiniz.
$mailtitle="Yeni bir mail aldınız!";  //size mail geldiğinde görüntülenecek başlık.
if (empty($name) or empty($email) or empty($subject) or empty($message)){
 
print ('Lütfen, tüm gerekli alanları doldurun...');  //gerekli alanlar doldurulmadığında görüntülenir.
}
 
else {
$mailcontent="Isim: $name
E-Posta: $email
Konu: $subject
Mesaj: $message"; 
if(mail($sendmail,$mailtitle,$mailcontent,$lang)){
 
print ('Teşekkürler! Mesajınız başarıyla gönderilmiştir!'); //mesaj başarıyla gönderildiğinde görüntülenir.
}
}	
?>

Buraya kadar her şeyi yap­tıy­sa­nız, şimdi geriye JavaSc­ript dos­ya­ları kalı­yor, önce­likle HTML dos­ya­sına head eti­ke­tin­den önce aşa­ğı­daki iki kodu ekle­me­niz gere­ki­yor, bir tanesi jQuery.min.js dos­yası için diğeri ise jQuery.validate.min.js dos­yası için bun­ları ajax.microsoft.com doma­ini üzerin­den çeke­bi­lir­si­niz ancak diğeri için bir dosya oluş­tu­rup validate.js ola­rak adlan­dı­rıp ile­ti­şim for­mu­nun yer aldığı dizine yük­le­me­niz gerekli.

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script><!--jQuery 1.4.2-->
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.min.js"></script><!--jQuery validate-->

Validate.js dos­yası:

$(document).ready(function() {
    $("#iletisimformu").validate({
        debug: false,
        rules: {
            name: "required",
            email: {
                required: true,
                email: true
            }
        },
        messages: {
            name: "Adınızı yazmadınız...", //ad kısmı boş bırakıldığında
            email: "E-Mail adresiniz yanlış...", //e-mail kısmı boş bırakıldığında
        },
        submitHandler: function(form) {
            // formu gönderme
            $.post('gonder.php', $("#iletisimformu").serialize(), function(data) {
                $('#results').html(data);
            });
        }
    });
            });

Dik­kat etme­niz gere­ken tek şey, HTML kodunda ve validate.js dos­ya­sın­daki “ile­ti­sim­formu” kısmı ile yine validate.js dos­ya­sında “gonder.php” kısım­ları. Bun­lar kesin­likle aynı olmalı. Yani farklı olur­larsa iki dosya ara­sında bir bağ­lantı kuru­la­maz, doğal ola­rak ile­ti­şim for­mu­nuz çalışmaz.

Bun­ları dik­kate aldıy­sa­nız her şey tamam demek­tir. Canlı bir örne­ğini şurada bula­bi­lir­si­niz. Ayrıca kay­nak dos­ya­la­rını da şura­dan indirebilirsiniz.

    

Siz de yorum yapmak ister misiniz?