Вставка PHP PDO в таблицу MySQL через AJAX с ответом JSON - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть контактная форма на моей странице указателя, которая должна содержать электронную почту и сообщение посетителя, которые будут сохранены в таблице mysql после нажатия кнопки отправки, я создал функцию нажатия кнопки jquery, которая имеет вызов ajax и ajaxзапрос идет на страницу под названием контакт Я не знаю, почему это не работает, я пропустил!сейчас Это структура моего проекта:

index.php  
connect.php (Database Connection)  
js (folder) => ajax.js (The jquery file inside the "js" folder)  
ajax (folder) => contact.php (The php file inside the ajax folder)    

Мой html:

<div id="index-contact-form">
    <form>
        <div>
            <input type="email" id="con-email" required>
            <label>Email</label>
        </div>
        <div>
            <textarea id="con-msg" required></textarea>
            <label>Message</label>
        </div>
        <div>
        <button id="con-send-btn" class="btn index-contact-form-btn">Send</button>
        <p id="con-error"></p>
        </div>
    </form>
</div>    

Это мой код файла ajax.js:

$(document).ready(function(){
    $("#con-send-btn").click(function(e){
        e.prvenetDefault();

        // Get Vister Entered Data
        var contactEmail = $("#con-email").val().trim();
        var contactMsg = $("#con-msg").val().trim();

        // Call AJAX Method And Specify Its Parameters
        $.ajax({
            url: "../ajax/contact.php",
            type: "POST",
            data: {email:contactEmail,message:contactMsg},
            dataType:"json",
            success: function(data){
                $("#index-contact-form").empty();
                $("#index-contact-form").append(data.success);
            },
            error: function(data){
                $("#con-error").text(data.fail);
            }
        });
    });
});  

Это мой контакт.php код файла:

<?php
    ini_set( 'error_reporting', E_ALL );
    ini_set( 'display_errors', true );

    include("../connect.php");
    if(isset($_POST['email']) && isset($_POST['message']))
    {
        // Get Data From POST Request
        $email = $_POST['email'];
        $message = $_POST['message'];

        // Declare Variables For Maintain The Results
        $success = '';
        $fail = '';

        // Validate The Form
        $formErrors=array(); // Empty Array Defined For Containing Error Messages Of Empty Inputs
        if(isset($email))
        {
            $filteredEmail = filter_var($email,FILTER_SANITIZE_EMAIL);
            if(filter_var($filteredEmail , FILTER_SANITIZE_EMAIL) != true)
            {
                $formErrors[]='Email not valid';
            }
            if(strlen($filteredEmail) > 100)
            {
                $formErrors[]='Email should be less than 100 characters';   
            }
            if(empty($filteredEmail))
            {
                $formErrors[]='You should provide email';   
            }
        }
        if(isset($message))
        {
            $filteredMessage = filter_var($message,FILTER_SANITIZE_STRING);
            if(strlen($filteredMessage) < 10)
            {
                $formErrors[]='Message can't be less than 10 characters';   
            }
            if(strlen($filteredMessage) > 255)
            {
                $formErrors[]='Message must be less than 255 characters';   
            }
            if(empty($filteredMessage))
            {
                $formErrors[]='Message must not be empty';  
            }
        }
        // If There Is No Error Procced The Insert Operation
        if(empty($formErrors))
        {
            // Insert User Info In Database
            $stmt = $con->prepare("insert into contact (ID , email , message) values (DEFAULT , :cemail , :cmessage)");
            $stmt-> execute(array(
                'cemail' => $email,
                'cmessage' => $message
            ));
            $success .= "Message has been sent";
        }
        else
        {
            foreach($formErrors as $error)
            {
                $fail .= $error;
            }
        }
        $data = array('success' => $success,'fail' => $fail);
        echo json_encode($data);
    }
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...