X7ROOT File Manager
Current Path:
/home/u126090504/domains/shreeganeshacademy.in/public_html
home
/
u126090504
/
domains
/
shreeganeshacademy.in
/
public_html
/
π
..
π
Antiraging-Cell.php
(2.73 KB)
π
B.Ed.&B.P.Ed.php
(4.44 KB)
π
about-us.php
(8.82 KB)
π
academic-head-message.php
(5.84 KB)
π
achievers.php
(3.07 KB)
π
admin
π
admission.php
(4.56 KB)
π
admission_submit.php
(1.96 KB)
π
album.php
(890 B)
π
computer-courses.php
(20.66 KB)
π
config.php
(1.17 KB)
π
contact-us.php
(14.66 KB)
π
contactdb.php
(796 B)
π
css
π
director's-message.php
(5.17 KB)
π
downloads.php
(3.14 KB)
π
error.log
(14.6 KB)
π
facilities.php
(5.62 KB)
π
faculty.php
(4.96 KB)
π
fonts
π
footer.php
(32.51 KB)
π
franchise.php
(2.09 KB)
π
gallery.php
(3.21 KB)
π
governing-body.php
(3.58 KB)
π
grievance-form.php
(13.71 KB)
π
header.php
(13.48 KB)
π
images
π
index.php
(71.3 KB)
π
js
π
lib
π
our-recruiters.php
(2.77 KB)
π
payment.php
(8.1 KB)
π
payment_submit.php
(10.97 KB)
π
payment_verify.php
(2.31 KB)
π
peret.php
(266.87 KB)
π
placement.php
(8.33 KB)
π
principal's-message.php
(6.02 KB)
π
qrcodes
π
revolution
π
scope.php
(14.14 KB)
π
search_videos.php
(1.76 KB)
π
shreeganesh.zip
(66.92 MB)
π
submit-grievance.php
(3.88 KB)
π
thank-you.php
(1.28 KB)
π
tutorial.php
(4.8 KB)
π
u126090504_shreeg.sql
(36.69 KB)
π
uploads
π
videos.php
(4.38 KB)
Editing: grievance-form.php
<?php require_once __DIR__ . '/config.php'; include 'header.php'; ?> <!-- Page Title --> <div class="ttm-page-title-row"> <div class="ttm-page-title-row-inner ttm-textcolor-white"> <div class="container"> <div class="row align-items-center"> <div class="col-lg-12"> <div class="page-title-heading"> <h2 class="title">Grievance Form</h2> </div> <div class="breadcrumb-wrapper"> <span><a title="Homepage" href="index.php">Home</a></span> </div> </div> </div> </div> </div> </div> <!-- /Page Title --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>Grievance Form</title> <link rel="preconnect" href="https://fonts.googleapis.com" /> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap" rel="stylesheet" /> <style> /* ========= Scoped styles to avoid theme/Bootstrap conflicts ========= */ #grievanceApp{ --card:#ffffff; --border:#e5e7eb; --text:#111827; --muted:#6b7280; font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif } #grievanceApp *{ box-sizing:border-box } #grievanceApp .wrap{ max-width:980px; margin:32px auto; padding:16px } #grievanceApp .card{ background:linear-gradient(135deg,#fefefe,#f7faff 20%,#f0f9ff 60%,#fef6ff 100%); border:1px solid var(--border); border-radius:14px; box-shadow:0 8px 30px rgba(0,0,0,.06); padding:22px } #grievanceApp h1{ font-size:22px; margin:0 0 8px; color:var(--text) } #grievanceApp .subtitle{ color:var(--muted); margin-bottom:18px } #grievanceApp .section{ margin-top:14px; padding-top:10px; border-top:1px dashed #e9e9ef } /* grid */ #grievanceApp .grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px } #grievanceApp .grid-3{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:16px } #grievanceApp .full{ grid-column:1 / -1 } #grievanceApp .grid > *{ min-width:0 } /* use .frow instead of .row to avoid Bootstrap .row */ #grievanceApp .frow{ display:block; margin:0 0 12px 0 } #grievanceApp label{ font-weight:600; font-size:14px; color:var(--text); display:block; margin-bottom:6px } #grievanceApp input, #grievanceApp select, #grievanceApp textarea{ width:100%; border:1px solid var(--border); border-radius:10px; padding:10px 12px; font-size:14px; outline:none; background:#fff; color:var(--text) } #grievanceApp textarea{ min-height:110px; resize:vertical } #grievanceApp .hint{ font-size:12px; color:var(--muted); margin-top:4px } #grievanceApp .radio-row, #grievanceApp .check-row{ display:flex; flex-wrap:wrap; gap:14px; margin-top:8px } #grievanceApp .radio-row label, #grievanceApp .check-row label{ font-weight:500; margin:0 } #grievanceApp .btn{ display:inline-flex; align-items:center; gap:8px; background:#2563eb; color:#fff; border:0; border-radius:999px; padding:11px 16px; font-weight:700; cursor:pointer } #grievanceApp .btn:disabled{ opacity:.6; cursor:not-allowed } #grievanceApp .badge{ display:inline-block; background:#eef2ff; color:#3730a3; border:1px solid #c7d2fe; border-radius:999px; padding:4px 10px; font-size:12px; margin-left:8px } #grievanceApp .req:after{ content:" *"; color:#ef4444 } #grievanceApp .files{ display:flex; flex-direction:column; gap:8px } #grievanceApp .pill{ display:inline-block; border:1px dashed #d1d5db; padding:6px 10px; border-radius:999px; font-size:12px } #grievanceApp .footer-note{ font-size:12px; color:var(--muted); margin-top:10px } @media (max-width:800px){ #grievanceApp .grid, #grievanceApp .grid-3{ grid-template-columns:1fr } } </style> </head> <body> <div id="grievanceApp"> <div class="wrap"> <div class="card"> <h1>Grievance / Complaint Form <span class="badge">Nursing College</span></h1> <div class="subtitle">Please fill accurate details. Fields marked * are required.</div> <form id="gForm" action="submit-grievance.php" method="post" enctype="multipart/form-data" novalidate> <!-- Personal Details --> <div class="section"> <h3>Personal Details</h3> <div class="grid"> <div class="frow"> <label class="req">Full Name</label> <input type="text" name="student_name" required placeholder="Full Name" /> </div> <div class="frow"> <label>Student / Employee ID</label> <input type="text" name="student_id" placeholder="ID (optional)" /> </div> <div class="frow"> <label>Department</label> <input type="text" name="department" placeholder="e.g., Pharmacy" /> </div> <div class="frow"> <label>Course</label> <select name="course"> <option value="">Select Course</option> <option>B.Pharm</option> <option>D.Pharm</option> <option>Other</option> </select> </div> <div class="frow"> <label>Year of Study</label> <select name="year_of_study"> <option value="">Select Year</option> <option>1st Year</option> <option>2nd Year</option> <option>3rd Year</option> <option>4th Year</option> </select> </div> <div class="frow"> <label class="req">Contact Number</label> <input type="tel" name="contact" required placeholder="10-digit mobile" /> <div class="hint">We may contact you for clarification.</div> </div> <div class="frow"> <label class="req">Email Address</label> <input type="email" name="email" required placeholder="email@example.com" /> </div> <div class="frow"> <label>Hostel Resident</label> <select name="hostel_resident"> <option>No</option> <option>Yes</option> </select> </div> <div class="frow"> <label>Preferred Mode of Response</label> <select name="preferred_response"> <option>Email</option> <option>Phone</option> <option>In-person</option> </select> </div> <div class="frow full"> <label>Confidential?</label> <div class="radio-row"> <label><input type="radio" name="confidential" value="1" /> Yes</label> <label><input type="radio" name="confidential" value="0" checked /> No</label> </div> </div> </div> </div> <!-- Grievance Details --> <div class="section"> <h3>Grievance Details</h3> <div class="grid"> <div class="frow full"> <label class="req">Nature of Grievance</label> <div class="radio-row"> <?php $types = ['Academic','Administrative','Facilities','Disciplinary','Ragging/Harassment','Financial/Fees','Other']; foreach ($types as $i => $t) { echo '<label><input type="radio" name="grievance_type" '.($i===0?'checked':'').' value="'.htmlspecialchars($t).'"> '.$t.'</label>'; } ?> </div> <div class="hint">Choose the most relevant category.</div> </div> <div class="frow"> <label>Sub-Category</label> <select name="grievance_subtype" id="subtype"> <option value="">Select based on category</option> </select> <div class="hint">Auto-updates when you change βNature of Grievanceβ.</div> </div> <div class="frow"> <label>Date of Incident</label> <input type="date" name="date_of_incident" /> </div> <div class="frow"> <label>Time of Incident</label> <input type="time" name="time_of_incident" /> </div> <div class="frow"> <label>Location</label> <select name="location"> <option value="">Select</option> <option>Classroom</option> <option>Hostel</option> <option>Library</option> <option>Lab</option> <option>Office</option> <option>Canteen</option> <option>Other</option> </select> </div> <div class="frow"> <label>Persons Involved (if any)</label> <input type="text" name="persons_involved" placeholder="Faculty/Staff/Students involved" /> </div> <div class="frow"> <label>Impact Level</label> <select name="impact_level"> <option>Low</option> <option>Medium</option> <option>High</option> </select> </div> <div class="frow"> <label>Expected Resolution Time</label> <select name="expected_resolution_time"> <option>1 week</option> <option selected>2 weeks</option> <option>1 month</option> </select> </div> <div class="frow full"> <label class="req">Description of Grievance</label> <textarea name="description" required placeholder="Give a clear, factual description. Include dates, people, and what happened."></textarea> </div> <div class="frow full"> <label>Previous Attempts to Resolve</label> <textarea name="previous_attempts" placeholder="Whom did you contact earlier? What response did you receive?"></textarea> </div> <div class="frow full"> <label>Desired Outcome</label> <textarea name="desired_outcome" placeholder="What do you think should be done to address the grievance?"></textarea> </div> </div> </div> <!-- Files --> <div class="section"> <h3>Supporting Documents (optional)</h3> <div class="files"> <input type="file" name="files[]" accept=".jpg,.jpeg,.png,.pdf,.doc,.docx" multiple /> <div class="hint">You can attach up to 3 files. Allowed: JPG, PNG, PDF, DOC, DOCX. Max 5MB each.</div> <div id="fileList" class="hint"></div> </div> </div> <!-- Declaration --> <div class="section"> <label><input type="checkbox" id="agree" required /> I declare the information is true and correct. I understand that false information may lead to dismissal of the grievance.</label> <div class="footer-note">By submitting, you agree to the instituteβs Grievance Redressal Policy.</div> </div> <div class="section"> <button class="btn" id="submitBtn" type="submit">π Submit Grievance</button> </div> </form> </div> </div> </div> <!-- Scoped JS --> <script> (function(){ const map = { "Academic": ["Exam Issue","Attendance","Teacher Behaviour","Syllabus Delay","Clinical Posting"], "Administrative": ["Admission","Certificates","ID Card","Bonafide","Results"], "Facilities": ["Hostel","Library","Laboratory","Transport","Wi-Fi","Canteen"], "Disciplinary": ["Misconduct","Harassment","Bullying","Ragging"], "Ragging/Harassment": ["Verbal","Physical","Online/Cyber","Other"], "Financial/Fees": ["Tuition Fee","Late Fee","Refund","Scholarship"], "Other": ["General"] }; const root = document.getElementById('grievanceApp'); const subtype = root.querySelector('#subtype'); root.querySelectorAll('input[name="grievance_type"]').forEach(r => { r.addEventListener('change', e => { const list = map[e.target.value] || []; subtype.innerHTML = '<option value="">Select Sub-Category</option>' + list.map(v => `<option>${v}</option>`).join(''); }); }); const def = root.querySelector('input[name="grievance_type"]:checked'); if (def) def.dispatchEvent(new Event('change')); // File pills + limit const fileInput = root.querySelector('input[type="file"][name="files[]"]'); const fileListEl = root.querySelector('#fileList'); fileInput.addEventListener('change', () => { fileListEl.innerHTML = ''; const files = Array.from(fileInput.files); if (files.length > 3) { alert('You can upload maximum 3 files.'); fileInput.value=''; return; } files.forEach(f => { const pill = document.createElement('span'); pill.className = 'pill'; pill.textContent = `${f.name} (${Math.round(f.size/1024)} KB)`; fileListEl.appendChild(pill); }); }); // Client validations const form = root.querySelector('#gForm'); form.addEventListener('submit', (e) => { const name = form.student_name.value.trim(); const contact = form.contact.value.trim(); const email = form.email.value.trim(); const desc = form.description.value.trim(); if (!name || !contact || !email || !desc) { e.preventDefault(); alert('Please fill all required fields.'); return; } if (!/^\d{10}$/.test(contact)) { e.preventDefault(); alert('Please enter a valid 10-digit contact number.'); return; } }); })(); </script> </body> </html> <?php include 'footer.php'; ?>
Upload File
Create Folder