function buyTicket() { const name = document.getElementById("buyerName").value.trim(); const count = document.getElementById("ticketCount").value; if (!name) { alert("Please enter your name"); return; } if (!count || count < 1) { alert("Please enter number of tickets"); return; } const baseUrl = "https://wa.me/918575848391"; const message = `Hello, my name is ${name}. I want to buy ${count} Housie ticket(s).`; const url = `${baseUrl}?text=${encodeURIComponent(message)}`; window.open(url, "_blank"); }
Attendance Check-in
// ------------------------------------------------------------------ // CONFIGURATION: PASTE YOUR GOOGLE SCRIPT WEB APP URL BELOW // ------------------------------------------------------------------ const scriptURL = 'https://script.google.com/macros/s/AKfycbziPa1_iJq1slE2UuG02jXw7fLTvVAL7do2iIR-MB0_VJ7FLBdrcXd4AWMlL05qAAAg/exec'; // ------------------------------------------------------------------ const form = document.forms['attendanceForm']; const submitBtn = document.getElementById('submitBtn'); const messageDiv = document.getElementById('message'); const btnTextSpan = submitBtn.querySelector('span'); form.addEventListener('submit', e => { e.preventDefault(); // UI Loading State submitBtn.disabled = true; btnTextSpan.textContent = 'Recording...'; const loader = document.createElement('div'); loader.className = 'loader'; submitBtn.appendChild(loader); messageDiv.classList.add('hidden'); // Convert FormData to URLSearchParams // This helps avoid CORS preflight issues that often block Google Script requests const formData = new FormData(form); const data = new URLSearchParams(); for (const pair of formData) { data.append(pair[0], pair[1]); } // Send data to Google Sheets fetch(scriptURL, { method: 'POST', body: data }) .then(response => { // Reset UI submitBtn.disabled = false; btnTextSpan.textContent = 'Submit Attendance'; if(submitBtn.querySelector('.loader')) { submitBtn.querySelector('.loader').remove(); } // Show success messageDiv.textContent = "✅ Success! Attendance recorded."; messageDiv.className = "text-center text-sm font-medium mt-2 text-green-600 block"; form.reset(); }) .catch(error => { // Reset UI submitBtn.disabled = false; btnTextSpan.textContent = 'Submit Attendance'; if(submitBtn.querySelector('.loader')) { submitBtn.querySelector('.loader').remove(); } // Show error console.error('Error!', error.message); messageDiv.textContent = "❌ Error! Could not connect. Check console."; messageDiv.className = "text-center text-sm font-medium mt-2 text-red-600 block"; }); });