403Webshell
Server IP : 65.1.209.187  /  Your IP : 216.73.216.144
Web Server : nginx/1.24.0
System : Linux ip-172-31-5-206 6.14.0-1015-aws #15~24.04.1-Ubuntu SMP Tue Sep 23 22:44:48 UTC 2025 x86_64
User :  ( 1001)
PHP Version : 8.3.6
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/drjunior_wordpress/wp-content/themes/drjunior/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/drjunior_wordpress/wp-content/themes/drjunior/AJAX-IMPLEMENTATION.md
# AJAX Form Implementation - Complete ✅

## What Was Implemented

A unified AJAX form submission system for both contact forms on your website with a beautiful, mobile-responsive modal for success/error messages.

---

## Files Created

### 1. `/ajax-form-handler.php` (NEW)
- Handles form submissions via AJAX
- Validates reCAPTCHA v3
- Sends email notifications
- Returns JSON responses
- Sanitizes all input for security

---

## Files Modified

### 2. `/footer.php`
**Added:**
- Success/Error modal HTML structure
- Loading overlay with spinner

### 3. `/functions.php`
**Added three new functions:**

#### a) `drjunior_form_modal_styles()`
- Adds CSS for modal popup
- Beautiful gradient background
- Animated icons (success checkmark, error exclamation)
- Smooth transitions and animations
- Mobile responsive design

#### b) `drjunior_ajax_form_script()`
- AJAX form submission handler
- Works with both forms: `#contact` and `#callback`
- Integrates with Google reCAPTCHA v3
- Shows loading overlay during submission
- Displays success/error modal with results
- Auto-resets form on success

### 4. `/header.php`
**Removed:** Old inline JavaScript for form submission

### 5. `/templates/template-home.php`
**Removed:** Old inline JavaScript for form submission

### 6. `/templates/template-contacts.php`
**Removed:** Old inline JavaScript for form submission

---

## Features

### ✅ **Single AJAX Handler**
Both forms (header enquiry and main contact form) use the same backend handler.

### ✅ **Beautiful Modal Popup**
- Success modal with green checkmark icon
- Error modal with red exclamation icon
- Smooth animations (fadeIn, slideIn, scaleIn, shake)
- Professional gradient background
- Close button and click-outside-to-close

### ✅ **Loading State**
- Full-screen overlay with blur effect
- Animated spinner
- "Sending your enquiry..." message

### ✅ **Mobile Responsive**
- Modal adjusts size on mobile devices
- Touch-friendly buttons
- Optimized font sizes and spacing

### ✅ **Security**
- Google reCAPTCHA v3 integration maintained
- Input sanitization (WordPress functions)
- CSRF protection via reCAPTCHA tokens

### ✅ **Better UX**
- No page reload
- Instant feedback
- Form resets on success
- Error handling with user-friendly messages

---

## How It Works

1. **User fills out form** (either in header or on contact page)
2. **Clicks Submit** → Form submission prevented
3. **Loading overlay appears** → "Sending your enquiry..."
4. **reCAPTCHA validates** → Google scores the submission
5. **AJAX request sent** → Data sent to `ajax-form-handler.php`
6. **Server processes:**
   - Validates all fields
   - Checks reCAPTCHA score
   - Sends email if valid
   - Returns JSON response
7. **Loading overlay hides**
8. **Modal popup shows:**
   - Success: Green checkmark + "Thank you" message + form resets
   - Error: Red exclamation + error message + form stays filled

---

## Forms Handled

### Form 1: Header Enquiry Form
- **ID:** `#callback`
- **Location:** `header.php` (sidebar form)
- **Fields:** Name, Contact No., Email, Location, Comment

### Form 2: Main Contact Form
- **ID:** `#contact`
- **Locations:** 
  - `template-home.php` (homepage enquiry section)
  - `template-contacts.php` (contact page)
- **Fields:** Name, Email, Contact No., Location, Message

---

## Email Configuration

**From:** mailer@drjunior.in  
**To:** support@drjunior.in  
**Subject:** Enquiry from [Name] - Dr. Junior

Email includes a formatted HTML table with all form fields.

---

## reCAPTCHA Details

**Site Key:** 6LcHEKwqAAAAAKgI1AlDOpo7UR8YVtE4fL808rnM  
**Secret Key:** 6LcHEKwqAAAAAGTIBEewYOvJznYBFz35kv2RMUYJ  
**Version:** reCAPTCHA v3  
**Minimum Score:** 0.5 (50%)

---

## Browser Compatibility

✅ Modern browsers (Chrome, Firefox, Safari, Edge)  
✅ Mobile browsers (iOS Safari, Chrome Mobile)  
✅ Tablets  
✅ Desktop

---

## Testing Checklist

- [ ] Test header enquiry form submission
- [ ] Test homepage contact form submission
- [ ] Test contact page form submission
- [ ] Test on mobile device
- [ ] Verify email delivery to support@drjunior.in
- [ ] Test error scenarios (empty fields, invalid email)
- [ ] Check modal appears correctly
- [ ] Check loading overlay appears
- [ ] Verify form resets after success
- [ ] Test close modal functionality

---

## Color Scheme

The modal and buttons use your brand color:
- **Primary:** #008da6 (teal/cyan)
- **Hover:** #006d82 (darker teal)

---

## Note

The AJAX implementation is **excluded** from the admissions page to avoid conflicts with its separate form system.

---

## Need Changes?

All modal styles can be customized in the `drjunior_form_modal_styles()` function in `functions.php`.

Colors, animations, sizes, and text can all be adjusted to your preference.

---

**Implementation Date:** January 10, 2026  
**Status:** ✅ Complete and Ready for Testing

Youez - 2016 - github.com/yon3zu
LinuXploit