make it such that mail send from website itself, and user doesnt have to open any email service provider to send the mail - Follow Up Deployment
Browse files- index.html +50 -15
index.html
CHANGED
|
@@ -139,7 +139,7 @@
|
|
| 139 |
|
| 140 |
<div class="flex flex-col md:flex-row items-center gap-8">
|
| 141 |
<div class="md:w-1/3 mb-8 md:mb-0 fade-in delay-1">
|
| 142 |
-
<div class="bg-gray-100 p-6 rounded-xl shadow-md">
|
| 143 |
<h3 class="text-xl font-semibold text-blue-500 mb-4">Education</h3>
|
| 144 |
<div class="space-y-4">
|
| 145 |
<div>
|
|
@@ -162,7 +162,7 @@
|
|
| 162 |
</div>
|
| 163 |
|
| 164 |
<div class="md:w-1/3 fade-in delay-2">
|
| 165 |
-
<div class="bg-gray-100 p-6 rounded-xl shadow-md">
|
| 166 |
<h3 class="text-xl font-semibold text-blue-500 mb-4">Experience</h3>
|
| 167 |
<div class="space-y-4">
|
| 168 |
<div>
|
|
@@ -468,7 +468,8 @@
|
|
| 468 |
|
| 469 |
<div class="flex flex-col md:flex-row gap-8">
|
| 470 |
<div class="md:w-1/2 fade-in delay-2">
|
| 471 |
-
<form class="space-y-6">
|
|
|
|
| 472 |
<div>
|
| 473 |
<label for="name" class="block text-sm font-medium text-gray-700 mb-1">Name</label>
|
| 474 |
<input type="text" id="name" name="name" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-blue-500 focus:border-blue-500">
|
|
@@ -659,25 +660,59 @@
|
|
| 659 |
});
|
| 660 |
|
| 661 |
// Form submission
|
| 662 |
-
const contactForm = document.
|
|
|
|
|
|
|
| 663 |
if (contactForm) {
|
| 664 |
-
contactForm.addEventListener('submit', (e) => {
|
| 665 |
e.preventDefault();
|
| 666 |
|
| 667 |
// Get form values
|
| 668 |
-
const
|
| 669 |
-
|
| 670 |
-
|
| 671 |
-
|
|
|
|
|
|
|
| 672 |
|
| 673 |
-
//
|
| 674 |
-
|
|
|
|
|
|
|
| 675 |
|
| 676 |
-
|
| 677 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 678 |
|
| 679 |
-
//
|
| 680 |
-
|
|
|
|
|
|
|
| 681 |
});
|
| 682 |
}
|
| 683 |
</script>
|
|
|
|
| 139 |
|
| 140 |
<div class="flex flex-col md:flex-row items-center gap-8">
|
| 141 |
<div class="md:w-1/3 mb-8 md:mb-0 fade-in delay-1">
|
| 142 |
+
<div class="bg-gray-100 p-6 rounded-xl shadow-md h-full">
|
| 143 |
<h3 class="text-xl font-semibold text-blue-500 mb-4">Education</h3>
|
| 144 |
<div class="space-y-4">
|
| 145 |
<div>
|
|
|
|
| 162 |
</div>
|
| 163 |
|
| 164 |
<div class="md:w-1/3 fade-in delay-2">
|
| 165 |
+
<div class="bg-gray-100 p-6 rounded-xl shadow-md h-full">
|
| 166 |
<h3 class="text-xl font-semibold text-blue-500 mb-4">Experience</h3>
|
| 167 |
<div class="space-y-4">
|
| 168 |
<div>
|
|
|
|
| 468 |
|
| 469 |
<div class="flex flex-col md:flex-row gap-8">
|
| 470 |
<div class="md:w-1/2 fade-in delay-2">
|
| 471 |
+
<form id="contactForm" class="space-y-6">
|
| 472 |
+
<div id="formStatus" class="hidden"></div>
|
| 473 |
<div>
|
| 474 |
<label for="name" class="block text-sm font-medium text-gray-700 mb-1">Name</label>
|
| 475 |
<input type="text" id="name" name="name" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-blue-500 focus:border-blue-500">
|
|
|
|
| 660 |
});
|
| 661 |
|
| 662 |
// Form submission
|
| 663 |
+
const contactForm = document.getElementById('contactForm');
|
| 664 |
+
const formStatus = document.getElementById('formStatus');
|
| 665 |
+
|
| 666 |
if (contactForm) {
|
| 667 |
+
contactForm.addEventListener('submit', async (e) => {
|
| 668 |
e.preventDefault();
|
| 669 |
|
| 670 |
// Get form values
|
| 671 |
+
const formData = {
|
| 672 |
+
name: document.getElementById('name').value,
|
| 673 |
+
email: document.getElementById('email').value,
|
| 674 |
+
subject: document.getElementById('subject').value,
|
| 675 |
+
message: document.getElementById('message').value
|
| 676 |
+
};
|
| 677 |
|
| 678 |
+
// Show loading state
|
| 679 |
+
formStatus.classList.remove('hidden');
|
| 680 |
+
formStatus.textContent = 'Sending message...';
|
| 681 |
+
formStatus.className = 'text-blue-500 p-4 rounded-lg bg-blue-50';
|
| 682 |
|
| 683 |
+
try {
|
| 684 |
+
// Send to server endpoint (you'll need to implement this)
|
| 685 |
+
const response = await fetch('https://your-server.com/send-email', {
|
| 686 |
+
method: 'POST',
|
| 687 |
+
headers: {
|
| 688 |
+
'Content-Type': 'application/json',
|
| 689 |
+
},
|
| 690 |
+
body: JSON.stringify({
|
| 691 |
+
to: 'me230003046@iiti.ac.in',
|
| 692 |
+
...formData
|
| 693 |
+
})
|
| 694 |
+
});
|
| 695 |
+
|
| 696 |
+
const result = await response.json();
|
| 697 |
+
|
| 698 |
+
if (response.ok) {
|
| 699 |
+
// Success message
|
| 700 |
+
formStatus.textContent = 'Message sent successfully!';
|
| 701 |
+
formStatus.className = 'text-green-500 p-4 rounded-lg bg-green-50';
|
| 702 |
+
contactForm.reset();
|
| 703 |
+
} else {
|
| 704 |
+
throw new Error(result.message || 'Failed to send message');
|
| 705 |
+
}
|
| 706 |
+
} catch (error) {
|
| 707 |
+
// Error message
|
| 708 |
+
formStatus.textContent = `Error: ${error.message}`;
|
| 709 |
+
formStatus.className = 'text-red-500 p-4 rounded-lg bg-red-50';
|
| 710 |
+
}
|
| 711 |
|
| 712 |
+
// Hide status after 5 seconds
|
| 713 |
+
setTimeout(() => {
|
| 714 |
+
formStatus.classList.add('hidden');
|
| 715 |
+
}, 5000);
|
| 716 |
});
|
| 717 |
}
|
| 718 |
</script>
|