### **πŸ“Œ Blogger Title:** πŸ”₯ Create PHP Contact Form with AJAX & File Upload - No Page Reload! πŸš€

    Demo :


Click Video πŸ‘‡πŸ‘‡πŸ‘‡


Code : 

πŸ“Œ Step 1: Create Database

Run the following SQL query in phpMyAdmin (XAMPP):


CREATE DATABASE contact_db;

USE contact_db;

CREATE TABLE contacts (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    email VARCHAR(255) NOT NULL,
    message TEXT NOT NULL,
    file_path VARCHAR(255) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);


πŸ“Œ Step 2: Create PHP Backend (submit.php)

This file handles form submission and file upload.


<?php

$conn = new mysqli("localhost", "root", "", "contact_db");


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

    $name = $_POST['name'];

    $email = $_POST['email'];

    $message = $_POST['message'];

    $file = $_FILES['file']['name'];

    

    $target_dir = "uploads/";

    $target_file = $target_dir . basename($file);

    

    if (move_uploaded_file($_FILES['file']['tmp_name'], $target_file)) {

        $sql = "INSERT INTO contacts (name, email, message, file_path) VALUES ('$name', '$email', '$message', '$target_file')";

        

        if ($conn->query($sql) === TRUE) {

            echo "Success";

        } else {

            echo "Error: " . $conn->error;

        }

    } else {

        echo "File Upload Failed";

    }

}

?>


πŸ“Œ Step 3: Create HTML Form with AJAX Submission (index.php)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>PHP Contact Form</title>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css">
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body class="container mt-5">
    <h2 class="text-center">Contact Us</h2>
    <form id="contactForm" enctype="multipart/form-data">
        <div class="mb-3">
            <label>Name:</label>
            <input type="text" name="name" class="form-control" required>
        </div>
        <div class="mb-3">
            <label>Email:</label>
            <input type="email" name="email" class="form-control" required>
        </div>
        <div class="mb-3">
            <label>Message:</label>
            <textarea name="message" class="form-control" required></textarea>
        </div>
        <div class="mb-3">
            <label>Upload File:</label>
            <input type="file" name="file" class="form-control" required>
        </div>
        <button type="submit" class="btn btn-primary">Send</button>
    </form>

    <script>
        $(document).ready(function() {
            $("#contactForm").submit(function(e) {
                e.preventDefault();
                var formData = new FormData(this);

                $.ajax({
                    type: "POST",
                    url: "submit.php",
                    data: formData,
                    contentType: false,
                    processData: false,
                    success: function(response) {
                        alert(response);
                    }
                });
            });
        });
    </script>
</body>
</html>

πŸ“Œ Step 4: Create Upload Folder

Create a folder named uploads/ in your project directory.


πŸ“Œ Step 5: Run Project in XAMPP

  1. Save files inside htdocs/contact-form/.
  2. Start XAMPP Apache & MySQL.
  3. Open http://localhost/contact-form/index.php.



Comments

Popular posts from this blog

πŸš€ Simple Login & Registration System in Python Tkinter πŸ“±

πŸš€ Create a Python Screen Recorder with Audio (Complete Code)

πŸ“‘ Fuzzu Packet Sniffer – Python GUI for Real-Time IP Monitoring | Tkinter + Scapy