douchuoxuan3177 2015-06-29 12:19
浏览 33
已采纳

PHP联系表单与Jquery验证无法正常工作

Problem is, whatever I tried did not work. Tried my own script, tried everything, then found some on google and tried them but no, don't know what's missing but, it doesn't work. The closest so far, I had empty emails. This is the latest version. Can anyone tell me what's missing ?

HTML

<div class="container-fluid">
                        <p id="returnmessage"></p>
                        <form action="sendEmail.php" id="contact_form" method="post">
                            <h2 style="font-size:14px;line-height:18px;font-weight:600;padding-bottom:0;">Bize Yazın</h2>
                            <ul class="contactform">
                                <li>
                                    <div id="name_error" class="error" style="color:#aa3939; font-size:8px; line-height:8px;"> <i class="fa fa-exclamation"></i> Lütfen adınızı giriniz.</div>
                                    <span class="contact-input-icon" style="text-align:left"><i class="fa fa-user"></i></span>
                                    <div class="input-field">
                                        <input type="text" style="border:1px solid rgba(220,220,220,0.5)" name="contactName" id="contactName" value="" class="required requiredField" placeholder="Ad Soyad"/>
                                    </div>
                                </li>
                                <li>
                                    <div id="email_error" class="error" style="color:#aa3939; font-size:8px; line-height:8px;"> <i class="fa fa-exclamation"></i> Lütfen eposta adresinizi giriniz.</div>
                                    <span class="contact-input-icon"><i class="fa fa-envelope"></i></span>
                                    <div class="input-field">
                                        <input type="email" style="border:1px solid rgba(220,220,220,0.5)" name="contactEmail" id="contactEmail" value="" class="required requiredField email" placeholder="Eposta"/>
                                    </div>
                                </li>
                                <li>
                                        <input type="text" style="border:1px solid rgba(220,220,220,0.5)" name="contactSubject" id="contactSubject" value="" class="hidden" placeholder=""/>
                                </li>
                                <li class="textarea">
                                    <div id="message_error" class="error" style="color:#aa3939; font-size:8px; line-height:8px;"> <i class="fa fa-exclamation"></i> Lütfen mesajınızı giriniz.</div>
                                    <span class="contact-input-icon"><i class="fa fa-pencil"></i></span>
                                    <div class="input-field">
                                        <textarea name="contactMessage" style="border:1px solid rgba(220,220,220,0.5)" id="contactMessage" rows="6" cols="20" class="required requiredField" placeholder="Mesajınız"></textarea>
                                    </div>
                                    <div id="mail_success" class="success" style="color:#00CC00"><i class="fa fa-check"></i> İlginiz için teşekkürler. En kısa sürede sizinle irtibata geçeceğiz.</div>
                                    <div id="mail_fail" class="error" style="color:#aa3939"><i class="fa fa-times"></i> Üzgünüz, mesajınız iletilemedi. Daha sonra lütfen tekrar deneyin.</div>
                                </li>
                                <li class="buttons">
                                    <div id="cf_submit_p">
                                    <input type="hidden" style="border:1px solid rgba(220,220,220,0.5)" name="submitted" id="submitted" value="true" />
                                    <button type="submit" style="border:1px solid #3f97cf" class="button" id="send_message"><i class="fa fa-paper-plane-o" style="font-size:20px;color:#3f97cf"></i></button>
                                    </div>
                                </li>
                            </ul>
                        </form>
                    </div> <!--end container-fluid-->
                </div><!-- #contact-canvas -->

JS validation

<script type="text/javascript">
    $(document).ready(function(){
        $('#send_message').on('submit',function(e){
            e.preventDefault();
            var error = false;
            var name = $('#contactName').val();
            var email = $('#contactEmail').val();
            var subject = $('#contactSubject').val();
            var message = $('#contactMessage').val();
            if(name.length == 0){
                var error = true;
                $('#name_error').fadeIn(500);
            } else {
                $('#name_error').fadeOut(500);
            }
            if(email.length == 0 || email.indexOf('@') == '-1'){
                error = true;
                $('#email_error').fadeIn(500);
            } else {
                $('#email_error').fadeOut(500);
            }
            if(message.length == 0){
                error = true;
                $('#message_error').fadeIn(500);
            } else {
                $('#message_error').fadeOut(500);
            } if(error == false){
                $('#cf_submit_p').attr({'disabled' : 'true', 'value' : 'Gönderiliyor...' });
                $.post("send_email.php", $("#contact_form").serialize(),function(result){
                    if(result == 'sent'){
                        $('#cf_submit_p').remove();
                        $('#mail_success').fadeIn(500);
                    } else {
                        $('#mail_fail').fadeIn(500);
                        $('#cf_submit_p').removeAttr('disabled').attr('value', 'Gönder');
                    }
                });
            }
            return false;
        });
    });
</script>

And PHP

<?php



//Değiştir. Site admini eposta adresi. 

$akaEmail = 'kreaft@outlook.com';





if($_POST) {



   $name = trim(stripslashes($_POST['contactName']));

   $email = trim(stripslashes($_POST['contactEmail']));

   $subject = trim(stripslashes($_POST['contactSubject']));

   $contact_message = trim(stripslashes($_POST['contactMessage']));



   // İsim doğrulama

    if (strlen($name) < 2) {

        $error['name'] = "Lütfen adınızı girin.";

    }

    // Email doğrulama

    if (!preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*+[a-z]{2}/is', $email)) {

        $error['email'] = "Lütfen geçerli bir eposta adresi girin.";

    }

    // Mesaj doğrulama

    if (strlen($contact_message) < 15) {

        $error['message'] = "Lütfen mesajınızı girin. (Min. 15 karakter)";

    }

   // Konu

    if ($subject == '') { $subject = "Site İletişim Formu"; }





   // Mesajı oluşturuyoruz

   $message .= "Gönd.: " . $name . "<br />";

   $message .= "Eposta: " . $email . "<br />";

   $message .= "Mesaj: <br />";

   $message .= $contact_message;

   $message .= "<br /> ----- <br /> Bu eposta site iletişim formu üzerinden gönderilmiştir. <br />";



   // Başlıkları oluşturuyoruz

   $from =  $name . " <" . $email . ">";



   // Başlıklar

    $headers = "From: " . $from . "
";

    $headers .= "Reply-To: ". $email . "
";

    $headers .= "MIME-Version: 1.0
";

    $headers .= "Content-Type: text/html; charset=ISO-8859-1
";





   if (!$error) {



      ini_set("sendmail_from", $akaEmail); // windows server için

      $mail = mail($akaEmail, $subject, $message, $headers);



        if ($mail) { echo "OK"; }

      else { echo "Bir hata oluştu. Lütfen tekrar deneyin."; }



    } # hiç bir doğrulama hatası çıkmazsa bitir, çıkarsa hataları listeliyoruz.



    else {



        $response = (isset($error['name'])) ? $error['name'] . "<br /> 
" : null;

        $response .= (isset($error['email'])) ? $error['email'] . "<br /> 
" : null;

        $response .= (isset($error['message'])) ? $error['message'] . "<br />" : null;



        echo $response;



    } # bir doğrulama hatası olmuşsa burada bitir.



}



?>
  • 写回答

2条回答 默认 最新

  • dongzhan8001 2015-06-29 12:24
    关注

    Notice: Undefined variable: message in /Users/kobigo/Sites/yedikitamuhendislik.com/sendEmail.php on line 61

    Look at what appears to be line 61:

    $message .= "Gönd.: " . $name . "<br />";
    

    You're trying to append to $message, but you never defined it in the first place. You can append to it after it's been defined, but on this first line you need to simply define it and assign to it:

    $message = "Gönd.: " . $name . "<br />";
    

    The remaining similar lines can append to it.


    You're also attaching to the wrong event in your JavaScript code:

    $('#send_message').on('submit',function(e){
    

    #send_message is a button, not a form. It doesn't have a submit event. Attach to the form instead:

    $('#contact_form').on('submit',function(e){
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)