|
Contact Form - Google Sheets Integration
body {
font-family: Arial, sans-serif;
max-width: 600px;
margin: 50px auto;
padding: 20px;
background-color: #f5f5f5;
}
.form-container {
background: white;
padding: 30px;
border-radius: 10px;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
.form-group {
margin-bottom: 20px;
}
label {
display: block;
margin-bottom: 5px;
font-weight: bold;
color: #333;
}
input, textarea {
width: 100%;
padding: 12px;
border: 2px solid #ddd;
border-radius: 5px;
font-size: 16px;
transition: border-color 0.3s;
}
input:focus, textarea:focus {
outline: none;
border-color: #4CAF50;
}
textarea {
height: 120px;
resize: vertical;
}
.submit-btn {
background-color: #4CAF50;
color: white;
padding: 12px 30px;
border: none;
border-radius: 5px;
cursor: pointer;
font-size: 16px;
transition: background-color 0.3s;
}
.submit-btn:hover {
background-color: #45a049;
}
.submit-btn:disabled {
background-color: #cccccc;
cursor: not-allowed;
}
.message {
padding: 15px;
margin: 20px 0;
border-radius: 5px;
display: none;
}
.success {
background-color: #d4edda;
color: #155724;
border: 1px solid #c3e6cb;
}
.error {
background-color: #f8d7da;
color: #721c24;
border: 1px solid #f5c6cb;
}
// Replace with your actual NoCodeAPI endpoint and credentials
const API_ENDPOINT = 'https://v1.nocodeapi.com/YOUR_USERNAME/google_sheets/YOUR_PROJECT_ID';
const API_KEY = 'YOUR_API_KEY';
document.getElementById('contactForm').addEventListener('submit', async function(e) {
e.preventDefault();
const submitBtn = document.getElementById('submitBtn');
const messageDiv = document.getElementById('message');
// Disable submit button and show loading state
submitBtn.disabled = true;
submitBtn.textContent = 'Sending...';
messageDiv.style.display = 'none';
// Collect form data
const formData = {
name: document.getElementById('name').value,
email: document.getElementById('email').value,
phone: document.getElementById('phone').value || 'Not provided',
message: document.getElementById('message').value,
timestamp: new Date().toLocaleString()
};
try {
const response = await fetch(API_ENDPOINT, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${API_KEY}`
},
body: JSON.stringify(formData)
});
if (response.ok) {
// Success
messageDiv.textContent = 'Thank you! Your message has been sent successfully.';
messageDiv.className = 'message success';
messageDiv.style.display = 'block';
// Reset form
document.getElementById('contactForm').reset();
} else {
throw new Error('Failed to submit form');
}
} catch (error) {
// Error handling
messageDiv.textContent = 'Sorry, there was an error sending your message. Please try again.';
messageDiv.className = 'message error';
messageDiv.style.display = 'block';
console.error('Error:', error);
} finally {
// Re-enable submit button
submitBtn.disabled = false;
submitBtn.textContent = 'Send Message';
}
});
|