表单提交后的错误

时间:2017-12-10 18:47:13

标签: javascript php jquery forms validation

A有一个工作表单,在JavaScript / PHP中都经过验证。提交表单后我得到了我的成功消息,但如果我在提交后填写相同的表单,当字段填写错误时显示奇怪的符号错误,请参阅附件{ {3}}:1 我不确定它是来自PHP还是Javascript.Please建议。

我的表格:

 <section class="inspiration" id="three">
            <div class="overlay">
                <div class="container">
                    <div class="row">
                        <article class="col-md-12 text-center">
                            <div class="intermediate-container">
                                <div class="heading wow fadeInUp">
                                    <h2>יש לכם שאלה? צרו איתי קשר</h2>
                                </div>
                                <div class="row">
                                    <div class="col-md-3 col-sm-3"></div>
                                    <div class="col-md-6 center-block col-sm-6 ">
                                        <form id="mc-form" method="POST">
                                            <div class="form-group col-xs-12 wow fadeInUp">
                                                <label for="name" hidden>שם פרטי</label>
                                                <input type="text" name="name" id="name" class="cv form-control" placeholder="שם פרטי">
                                                <span class='error-message' id='name-error'></span>

                                            </div>
                                            <div class="form-group col-xs-12 wow fadeInUp ">
                                                <label for="phone" hidden>טלפון</label>
                                                <input type="text" name="phone" id="phone" class="cv form-control" placeholder="טלפון">
                                                <span class='error-message' id='phone-error'></span>
                                            </div>
                                            <div class="form-group col-xs-12  wow fadeInUp">
                                                <label for="email" hidden>דואר אלקטרוני</label>
                                                <input type="email" name="email" id="email" class="cv form-control" placeholder="דואר אלקטרוני">
                                                <span class='error-message' id='email-error'></span>
                                            </div>
                                            <div class="form-group col-xs-12 wow fadeInUp ">
                                                <label for="subject" hidden>נושא</label>
                                                <input type="text" name="subject" id="subject" class="cv form-control" placeholder="נושא">
                                                <span class='error-message' id='subject-error'></span>
                                            </div>
                                            <div class="form-group col-xs-12  wow fadeInUp">
                                                <label for="message" hidden>הודעה</label>
                                                <textarea name="message" id="message" class="cv form-control message" placeholder="השאירו את הודעתכם פה" rows="4" cols="50"></textarea>
                                                <span class='error-message' id='message-error'></span>
                                            </div>
                                            <!-- <input type="submit" id="submit-button" class="btn btn-custom-outline " value="שלח" > -->
                                            <button class="btn btn-custom-outline wow fadeInUp" id="submit-button">שלח</button>
                                            <span class='error-message' id='submit-error'></span>
                                            <span class="success">הודעתך נשלחה בהצלחה!</span>

                                        </form>
                                    </div>
                                </div>
                            </div>
                        </article>
                    </div>
                </div>
            </div>
        </section>

我的Javasript:

function sendForm() {

        $('[id*="-error"]').text(''); // default hide all error messages

        event.preventDefault(); // prevent form submission and therefore page reload

        $.ajax({
            type: 'POST',
            url: './send.php',
            data: $("#mc-form").serialize(),
            success: function(data) {


                if(data.hasOwnProperty('error')) {

                    Object.keys(data['error']).forEach(function(key) {
                        producePrompt(data['error'][key], key+'-error', 'red');
                    });

                }
                if(data.hasOwnProperty('mail_error')) {
                    alert('Could not send mail');
                }
                if(data.hasOwnProperty('success')) {
                     alert(data['success']);
                     $('.success').show();

                     $("#name").val('');
                     $("#phone").val('');
                     $("#email").val('');
                     $("#subject").val('');
                     $("#message").val('');


                }

            }
 });

    }

我的PHP:

<?php

$error_msg = array();
$success_msg = array();
$data = '';

// prevent warnings or errors from displaying, else you won't get proper json result
ini_set('display_errors',0);

if ($_SERVER["REQUEST_METHOD"] == "POST") {

    if (empty($_POST["name"])) {
        $error_msg['name'] = "שדה זה הינו חובה";
    } else {
        $name = test_input($_POST["name"]);
        // check if name only contains letters and whitespace
        if (!preg_match("/^[a-zA-Zא-ת ]*$/",$name)) {
            $error_msg['name'] = "אותיות ורווחים בלבד";
        }
    }


    if (empty($_POST["email"])) {
        $error_msg['email'] = "שדה זה הינו חובה";
    } else {
        $email = test_input($_POST["email"]);
        // check if e-mail address is well-formed
        if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
            $error_msg['email'] = "דואר אלקטרוני לא תקין";
        }
    }

    if (empty($_POST["phone"])) {
        $error_msg['phone'] = "שדה זה הינו חובה";
    } else {
        $phone = test_input($_POST["phone"]);
        // check if e-mail address is well-formed
        if (!preg_match("/^(\d[\s-]?)?[\(\[\s-]{0,2}?\d{3}[\)\]\s-]{0,2}?\d{3}[\s-]?\d{4}$/i",$phone)) {
            $error_msg['phone'] = "טלפון לא תקין";
        }
    }
    if (empty($_POST["subject"])) {
        $error_msg['subject'] = "שדה זה הינו חובה";
    }
    if (empty($_POST["message"])) {
        $error_msg['message'] = "שדה זה בינו חובה";
    }

    if (empty($_POST["subject"])) {
        $subject = "";
    } else {
        $subject = test_input($_POST["subject"]);
    }

    if (empty($_POST["message"])) {
        $message = "";
    } else {
        $message = test_input($_POST["message"]);
    }

    if (empty($error_msg)){ // note that $lastname_error does not exists
        $message_body = '';
        unset($_POST['submit']);
        foreach ($_POST as $key => $value){
            $message_body .=  "$key: $value\n";
        }

        $to = 'XXXXXXXb@gmail.com';
        $subjectm = 'Contact Form Submit';
        $feedback = "שם: $name. טלפון: $phone. דואר אלקטרוני :$email. הודעה : $message";
        if (mail($to, $subjectm, $feedback)){
            $success_msg = "הודעתך נשלחה בהצלחה,תודה !";
            $name = $email = $phone = $message = $subject = '';
        } else {
            $mail_error_msg = 'לא ניתן לשלוח אימייל';
        }


    }

    // set output data accordingly
    if(!empty($success_msg)) {
        $data = array('success'=>$success_msg);
    } else if(!empty($error_msg)) {
        $data = array('error'=>$error_msg);
    } else if(!empty($mail_error_msg)) {
        $data = array('mail_error'=>$mail_error_msg);
    }

    // output json that you can parse with jquery
    header('Content-Type: application/json');
    echo json_encode($data);
}

function test_input($data) {
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;
}

A有一个工作表单,在JavaScript / PHP中都经过验证。提交表单后我得到了我的成功消息,但如果我在提交后填写相同的表单,当字段填写错误时显示奇怪的符号错误,请参阅附件{ {3}}
我不确定它是来自PHP还是Javascript.Please建议。

0 个答案:

没有答案