Form For Table no. And Coustomer Details:

 Form For Table no. And Coustomer Details: 

Output:

Order Form

Customer Details:



Code:

CSS:


Html:

  <div class="main" id="coustomer-details-input-div" style="display: flex; flex-wrap: wrap; background-color: white; padding: 10px; margin: 5px; border: 1px solid #B9B9BA; border-radius: 20px; box-shadow: 0 2px 8px #B9B9BA;">
  <div style="width: 100%; display: flex; justify-content: center; align-items: center; height: 100px;">
  <h2 style="font-size: 35px; margin: 0;">Order Form</h2>
</div>

  <!-- ๐Ÿ”ธ Customer Heading and Selected Items Button -->
  <div class="h3-selected-item-callbtn-div" style="display: flex; justify-content: space-between; align-items: center; gap: 15px; margin-bottom: 10px; flex-wrap: nowrap;">
    <h3 style="font-size: 24px; border: none; border-radius: 8px; margin: 0; font-weight: bold; color: #333;">
      Customer Details:
    </h3>
    <div id="selected-item-callbtn-id-div" class="selected-item-callbtn-div">
      <button type="submit" id="selected-item-table-callbtn" class="btn" style="font-size: 24px; border: none; border-radius: 8px; cursor: pointer; background-color: deepskyblue; color: white; padding: 8px 16px; box-shadow: 1px 1px 5px rgba(0,0,0,0.2);">
        Selected Items
      </button>
    </div>
  </div>

  <!-- ๐Ÿ”ธ Form Starts -->
  <form class="form-outer" id="coustomer-details-input-form"<!--  method="post" not allowed in blogger Post use (on subjt="" ) --> onsubmit="handleOrderForm(event)" style="flex-basis: 400px; max-width: 400px; background: #FFB799; padding: 20px; border-radius: 10px; border: 1px solid #B9B9BA; box-shadow: 0 2px 8px #B9B9BA; margin: 10px;">
    <div class="form-inpu" style="flex-basis: 400px;">
      
      <!-- ๐Ÿ”น Hidden Serial No -->
      <label for="auto-order-count-serial" style="display: block; font-size: 18px; font-weight: bold; margin-bottom: 5px; color: #333;"></label>
      <input type="number" id="order-serial-number" name="Srl. No." style="display: none; width: 100%; height: 40px; padding: 8px; margin-bottom: 15px; border: 1px solid #ccc; border-radius: 8px; font-size: 20px; font-weight: bold;" />

      <!-- ๐Ÿ”น Table No. -->
      <label for="table-adress-number" style="font-weight: bold;">Table No.:</label>
      <select id="table-adress-number" name="Table No." class="table-select" style="width: 100%; height: 40px; padding: 8px; margin-bottom: 15px; border-radius: 8px; font-size: 20px; font-weight: bold;"
        onfocus="this.style.outline='none'; this.style.borderColor='#00aaff'; this.style.backgroundColor='#f0faff';"
        onblur="this.style.borderColor='#ccc'; this.style.backgroundColor='white';" required>
        <option value="" disabled selected>Select Table</option>

        <!-- River Side Table Options -->
        <optgroup label="── River Side──       “R.S. - Table 1”   Fast Batch">
          <option value="R.S.-1" style="font-size: 16px; color: green;">R.S. - Table: 1</option>
          <option value="R.S.-1-A">R.S. - Table: 1-A</option>
          <option value="R.S.-1-B">R.S. - Table: 1-B</option>
        </optgroup>
        <optgroup label="“R.S. - Table 1”   Second Batch">
          <option value="R.S.-1/2">R.S. - Table: 1/2</option>
          <option value="R.S.-1-A/2">R.S. - Table: 1-A/2</option>
          <option value="R.S.-1-B/2">R.S. - Table: 1-B/2</option>
        </optgroup>
        <optgroup label="“R.S. - Table 2”   Fast Batch">
          <option value="R.S.-2">R.S. - Table: 2</option>
          <option value="R.S.-2-A">R.S. - Table: 2-A</option>
          <option value="R.S.-2-B">R.S. - Table: 2-B</option>
        </optgroup>
        <optgroup label="“R.S. - Table 2”   Second Batch">
          <option value="R.S.-2/2">R.S. - Table: 2/2</option>
          <option value="R.S.-2-A/2">R.S. - Table: 2-A/2</option>
          <option value="R.S.-2-B/2">R.S. - Table: 2-B/2</option>
        </optgroup>
          <optgroup label="“R.S. - Table 3”   Fast Batch">
    <option value="R.S.-3">R.S. - Table: 3</option>
    <option value="R.S.-3-A">R.S. - Table: 3-A</option>
    <option value="R.S.-3-B">R.S. - Table: 3-B</option>
  </optgroup>
  <optgroup label="“R.S. - Table 3”   Second Batch">
    <option value="R.S.-3/2">R.S. - Table: 3/2</option>
    <option value="R.S.-3-A/2">R.S. - Table: 3-A/2</option>
    <option value="R.S.-3-B/2">R.S. - Table: 3-B/2</option>
  </optgroup>
  
  <optgroup label="“R.S. - Table 4”   Fast Batch">
    <option value="R.S.-4">R.S. - Table: 4</option>
    <option value="R.S.-4-A">R.S. - Table: 4-A</option>
    <option value="R.S.-4-B">R.S. - Table: 4-B</option>
  </optgroup>
  <optgroup label="“R.S. - Table 4”   Second Batch">
    <option value="R.S.-4/2">R.S. - Table: 4/2</option>
    <option value="R.S.-4-A/2">R.S. - Table: 4-A/2</option>
    <option value="R.S.-4-B/2">R.S. - Table: 4-B/2</option>
  </optgroup>
  
  <optgroup label="“R.S. - Table 5”   Fast Batch">
    <option value="R.S.-5">R.S. - Table: 5</option>
    <option value="R.S.-5-A">R.S. - Table: 5-A</option>
    <option value="R.S.-5-B">R.S. - Table: 5-B</option>
  </optgroup>
  <optgroup label="“R.S. - Table 5”   Second Batch">
    <option value="R.S.-5/2">R.S. - Table: 5/2</option>
    <option value="R.S.-5-A/2">R.S. - Table: 5-A/2</option>
    <option value="R.S.-5-B/2">R.S. - Table: 5-B/2</option>
  </optgroup>
  
  <optgroup label="“R.S. - Table 6”   Fast Batch">
    <option value="R.S.-6">R.S. - Table: 6</option>
    <option value="R.S.-6-A">R.S. - Table: 6-A</option>
    <option value="R.S.-6-B">R.S. - Table: 6-B</option>
  </optgroup>
  <optgroup label="“R.S. - Table 6”   Second Batch">
    <option value="R.S.-6/2">R.S. - Table: 6/2</option>
    <option value="R.S.-6-A/2">R.S. - Table: 6-A/2</option>
    <option value="R.S.-6-B/2">R.S. - Table: 6-B/2</option>
  </optgroup>
  
  <optgroup label="“R.S. - Table 7”   Fast Batch">
    <option value="R.S.-7">R.S. - Table: 7</option>
    <option value="R.S.-7-A">R.S. - Table: 7-A</option>
    <option value="R.S.-7-B">R.S. - Table: 7-B</option>
  </optgroup>
  <optgroup label="“R.S. - Table 7”   Second Batch">
    <option value="R.S.-7/2">R.S. - Table: 7/2</option>
    <option value="R.S.-7-A/2">R.S. - Table: 7-A/2</option>
    <option value="R.S.-7-B/2">R.S. - Table: 7-B/2</option>
  </optgroup>
  
  <optgroup label="“R.S. - Table 8”   Fast Batch">
    <option value="R.S.-8">R.S. - Table: 8</option>
    <option value="R.S.-8-A">R.S. - Table: 8-A</option>
    <option value="R.S.-8-B">R.S. - Table: 8-B</option>
  </optgroup>
  <optgroup label="“R.S. - Table 8”   Second Batch">
    <option value="R.S.-8/2">R.S. - Table: 8/2</option>
    <option value="R.S.-8-A/2">R.S. - Table: 8-A/2</option>
    <option value="R.S.-8-B/2">R.S. - Table: 8-B/2</option>
  </optgroup>
  
  <optgroup label="“R.S. - Table 9”   Fast Batch">
    <option value="R.S.-9">R.S. - Table: 9</option>
    <option value="R.S.-9-A">R.S. - Table: 9-A</option>
    <option value="R.S.-9-B">R.S. - Table: 9-B</option>
  </optgroup>
  <optgroup label="“R.S. - Table 9”   Second Batch">
    <option value="R.S.-9/2">R.S. - Table: 9/2</option>
    <option value="R.S.-9-A/2">R.S. - Table: 9-A/2</option>
    <option value="R.S.-9-B/2">R.S. - Table: 9-B/2</option>
  </optgroup>
  
  
  <!-- Front Section -->
  <!-- Front Tables 1 to 4 -->
  <optgroup label="── Front ──      “F. - Table 1”   Fast Batch">
    <option value="F.-1">F. - Table: 1</option>
    <option value="F.-1-A">F. - Table: 1-A</option>
    <option value="F.-1-B">F. - Table: 1-B</option>
  </optgroup>
  <optgroup label="“F. - Table 1”   Second Batch">
    <option value="F.-1/2">F. - Table: 1/2</option>
    <option value="F.-1-A/2">F. - Table: 1-A/2</option>
    <option value="F.-1-B/2">F. - Table: 1-B/2</option>
  </optgroup>
  
  <optgroup label="“F. - Table 2”   Fast Batch">
    <option value="F.-2">F. - Table: 2</option>
    <option value="F.-2-A">F. - Table: 2-A</option>
    <option value="F.-2-B">F. - Table: 2-B</option>
  </optgroup>
  <optgroup label="“F. - Table 2”   Second Batch">
    <option value="F.-2/2">F. - Table: 2/2</option>
    <option value="F.-2-A/2">F. - Table: 2-A/2</option>
    <option value="F.-2-B/2">F. - Table: 2-B/2</option>
  </optgroup>
  
  <optgroup label="“F. - Table 3”   Fast Batch">
    <option value="F.-3">F. - Table: 3</option>
    <option value="F.-3-A">F. - Table: 3-A</option>
    <option value="F.-3-B">F. - Table: 3-B</option>
  </optgroup>
  <optgroup label="“F. - Table 3”   Second Batch">
    <option value="F.-3/2">F. - Table: 3/2</option>
    <option value="F.-3-A/2">F. - Table: 3-A/2</option>
    <option value="F.-3-B/2">F. - Table: 3-B/2</option>
  </optgroup>
  
  <optgroup label="“F. - Table 4”   Fast Batch">
    <option value="F.-4">F. - Table: 4</option>
    <option value="F.-4-A">F. - Table: 4-A</option>
    <option value="F.-4-B">F. - Table: 4-B</option>
  </optgroup>
  <optgroup label="“F. - Table 4”   Second Batch">
    <option value="F.-4/2">F. - Table: 4/2</option>
    <option value="F.-4-A/2">F. - Table: 4-A/2</option>
    <option value="F.-4-B/2">F. - Table: 4-B/2</option>
  </optgroup>
  
  
  <!-- Occasional Section -->
  <optgroup label="── Occasional ──  " Oc. – Table 1" – Fast Batch">
    <option value="Oc.1">Oc. - 1</option>
    <option value="Oc.1-A">Oc. - 1-A</option>
    <option value="Oc.1-B">Oc. - 1-B</option>
  </optgroup>
  <optgroup label="Oc. – Table 1 – Second Batch">
    <option value="Oc.1/2">Oc. - 1/2</option>
    <option value="Oc.1-A/2">Oc. - 1-A/2</option>
    <option value="Oc.1-B/2">Oc. - 1-B/2</option>
  </optgroup>
  
  <optgroup label="Oc. – Table 2 – Fast Batch">
    <option value="Oc.2">Oc. - 2</option>
    <option value="Oc.2-A">Oc. - 2-A</option>
    <option value="Oc.2-B">Oc. - 2-B</option>
  </optgroup>
  <optgroup label="Oc. – Table 2 – Second Batch">
    <option value="Oc.2/2">Oc. - 2/2</option>
    <option value="Oc.2-A/2">Oc. - 2-A/2</option>
    <option value="Oc.2-B/2">Oc. - 2-B/2</option>
  </optgroup>
  
  <optgroup label="Oc. – Table 3 – Fast Batch">
    <option value="Oc.3">Oc. - 3</option>
    <option value="Oc.3-A">Oc. - 3-A</option>
    <option value="Oc.3-B">Oc. - 3-B</option>
  </optgroup>
  <optgroup label="Oc. – Table 3 – Second Batch">
    <option value="Oc.3/2">Oc. - 3/2</option>
    <option value="Oc.3-A/2">Oc. - 3-A/2</option>
    <option value="Oc.3-B/2">Oc. - 3-B/2</option>
  </optgroup>
  
  <optgroup label="Oc. – Table 4 – Fast Batch">
    <option value="Oc.4">Oc. - 4</option>
    <option value="Oc.4-A">Oc. - 4-A</option>
    <option value="Oc.4-B">Oc. - 4-B</option>
  </optgroup>
  <optgroup label="Oc. – Table 4 – Second Batch">
    <option value="Oc.4/2">Oc. - 4/2</option>
    <option value="Oc.4-A/2">Oc. - 4-A/2</option>
    <option value="Oc.4-B/2">Oc. - 4-B/2</option>
  </optgroup>
  
  <optgroup label="Oc. – Table 5 – Fast Batch">
    <option value="Oc.5">Oc. - 5</option>
    <option value="Oc.5-A">Oc. - 5-A</option>
    <option value="Oc.5-B">Oc. - 5-B</option>
  </optgroup>
  <optgroup label="Oc. – Table 5 – Second Batch">
    <option value="Oc.5/2">Oc. - 5/2</option>
    <option value="Oc.5-A/2">Oc. - 5-A/2</option>
    <option value="Oc.5-B/2">Oc. - 5-B/2</option>
  </optgroup>
  
  <optgroup label="Oc. – Table 6 – Fast Batch">
    <option value="Oc.6">Oc. - 6</option>
    <option value="Oc.6-A">Oc. - 6-A</option>
    <option value="Oc.6-B">Oc. - 6-B</option>
  </optgroup>
  <optgroup label="Oc. – Table 6 – Second Batch">
    <option value="Oc.6/2">Oc. - 6/2</option>
    <option value="Oc.6-A/2">Oc. - 6-A/2</option>
    <option value="Oc.6-B/2">Oc. - 6-B/2</option>
  </optgroup>
  
  <optgroup label="Oc. – Table 7 – Fast Batch">
    <option value="Oc.7">Oc. - 7</option>
    <option value="Oc.7-A">Oc. - 7-A</option>
    <option value="Oc.7-B">Oc. - 7-B</option>
  </optgroup>
  <optgroup label="Oc. – Table 7 – Second Batch">
    <option value="Oc.7/2">Oc. - 7/2</option>
    <option value="Oc.7-A/2">Oc. - 7-A/2</option>
    <option value="Oc.7-B/2">Oc. - 7-B/2</option>
  </optgroup>
  
  <optgroup label="Oc. – Table 8 – Fast Batch">
    <option value="Oc.8">Oc. - 8</option>
    <option value="Oc.8-A">Oc. - 8-A</option>
    <option value="Oc.8-B">Oc. - 8-B</option>
  </optgroup>
  <optgroup label="Oc. – Table 8 – Second Batch">
    <option value="Oc.8/2">Oc. - 8/2</option>
    <option value="Oc.8-A/2">Oc. - 8-A/2</option>
    <option value="Oc.8-B/2">Oc. - 8-B/2</option>
  </optgroup>
  
  <optgroup label="Oc. – Table 9 – Fast Batch">
    <option value="Oc.9">Oc. - 9</option>
    <option value="Oc.9-A">Oc. - 9-A</option>
    <option value="Oc.9-B">Oc. - 9-B</option>
  </optgroup>
  <optgroup label="Oc. – Table 9 – Second Batch">
    <option value="Oc.9/2">Oc. - 9/2</option>
    <option value="Oc.9-A/2">Oc. - 9-A/2</option>
    <option value="Oc.9-B/2">Oc. - 9-B/2</option>
  </optgroup>
      </select>

      <!-- ๐Ÿ”น Date-Time Input -->
      <div style="margin-bottom: 15px;">
        <label for="date-time-local" style="display: block; font-size: 18px; font-weight: bold; margin-bottom: 5px; color: #333;">
          Date Time:
        </label>
        <input type="datetime-local" id="date-time-local" name="Date" style="width: 100%; height: 45px; padding: 8px 12px; border: 1px solid #ccc; border-radius: 8px; font-size: 18px; font-weight: bold; box-sizing: border-box; background-color: #fff;" required />
      </div>

      <!-- ๐Ÿ”น Name -->
      <label for="name" style="display: block; font-size: 18px; font-weight: bold; margin-bottom: 5px; color: #333;">Name:</label>
      <input type="text" id="name" name="Name" style="width: 100%; height: 45px; padding: 8px 12px; border: 1px solid #ccc; border-radius: 8px; font-size: 18px; font-weight: bold; box-sizing: border-box; background-color: #fff;" required />

      <!-- ๐Ÿ”น Mobile No. -->
      <label for="mobile-no" style="display: block; font-size: 18px; font-weight: bold; margin-bottom: 5px; color: #333;">Mobile No:</label>
      <input type="number" id="mobile-no" name="Mobile No." style="width: 100%; height: 45px; padding: 8px 12px; border: 1px solid #ccc; border-radius: 8px; font-size: 18px; font-weight: bold; box-sizing: border-box; background-color: #fff;" />

      <!-- ๐Ÿ”น Email -->
      <label for="email-id" style="display: block; font-size: 18px; font-weight: bold; margin-bottom: 5px; color: #333;">Email:</label>
      <input type="email" id="email-id" name="Email id" style="width: 100%; height: 45px; padding: 8px 12px; border: 1px solid #ccc; border-radius: 8px; font-size: 18px; font-weight: bold; box-sizing: border-box; background-color: #fff;" />
    </div>

    <!-- ๐Ÿ”น Button Section -->
    <div style="margin-top: 20px;">
      <div style="display: flex; gap: 10px; justify-content: space-between; margin-bottom: 10px; flex-wrap: nowrap;">
        
        <!-- ๐Ÿ” Refresh Button -->
        <div style="flex: 1; text-align: center; background-color: white; padding: 3px; margin: 0; border: 1px solid #B9B9BA; border-radius: 11px; box-shadow: 0 2px 8px #B9B9BA;">
          <button type="reset" id="clearbtn-input-to-order" style="width: 100%; padding: 10px; background-color: #ffc107; font-size: 24px; border: none; border-radius: 8px; cursor: pointer; color: black;">
            Refresh
          </button>
        </div>

        <!-- ❌ Close Button -->
        <div style="flex: 1; text-align: center; background-color: white; padding: 3px; margin: 0; border: 1px solid #B9B9BA; border-radius: 11px; box-shadow: 0 2px 8px #B9B9BA;">
          <button type="button" onclick="toggleSelectionList()" id="closebtn-input-to-order" style="width: 100%; padding: 10px; background-color: #dc3545; font-size: 24px; border: none; border-radius: 8px; cursor: pointer; color: white;">
            Close
          </button>
        </div>

      </div>

      <!-- ✅ Submit Button -->
      <div style="flex: 1; text-align: center; background-color: white; padding: 3px; margin: 0; border: 1px solid #B9B9BA; border-radius: 11px; box-shadow: 0 2px 8px #B9B9BA;">
        <button type="submit" id="submitbtn-input-to-order" style="width: 100%; padding: 10px; background-color: #28a745; font-size: 24px; border: none; border-radius: 8px; cursor: pointer; color: white;">
          Submit to Your Order
        </button>
      </div>
    </div>
  </form>
</div>


JS:

<script>
  let serialNumber = 1;

  // ✅ Utility function to format date-time in DD:MM:YYYY, 12-hour format
  function getCurrentDateTimeInLocalFormat() {
    const now = new Date();

    const day = String(now.getDate()).padStart(2, '0');
    const month = String(now.getMonth() + 1).padStart(2, '0');
    const year = now.getFullYear();

    const hours = now.getHours();
    const minutes = String(now.getMinutes()).padStart(2, '0');
    const seconds = String(now.getSeconds()).padStart(2, '0');

    const ampm = hours >= 12 ? 'PM' : 'AM';
    const hour12 = String(hours % 12 || 12).padStart(2, '0');

    const datePart = `${day}:${month}:${year}`;
    const timePart = `${hour12}:${minutes}:${seconds} ${ampm}`;

    return `${datePart}, ${timePart}`;
  }

  document.getElementById('orderForm').addEventListener('submit', function (e) {
    e.preventDefault(); // Stop form from submitting normally

    const name = document.getElementById('customerName').value.trim();
    const mobile = document.getElementById('customerMobile').value.trim();
    const table = document.getElementById('tableNumber').value;
    const email = document.getElementById('customerEmail')?.value.trim() || ''; // optional field

    if (name === '' || mobile === '' || table === '') {
      alert('Please fill all fields!');
      return;
    }

    const dateTime = getCurrentDateTimeInLocalFormat(); // ✅ Get formatted date-time

    const tbody = document.getElementById('orderDataTable').querySelector('tbody');
    const newRow = document.createElement('tr');

    newRow.innerHTML = `
      <td>${serialNumber++}</td>
      <td>${table}</td>
      <td>${name}</td>
      <td>${mobile}</td>
      <td>${email}</td>
      <td>${dateTime}</td> <!-- ✅ Date-Time Column -->
    `;

    tbody.appendChild(newRow);

    // Optional: Clear form after submission
    document.getElementById('orderForm').reset();
  });

  function handleOrderForm(event) {
    event.preventDefault(); // Prevent 405 error
    alert("Form processed via JavaScript. No POST required.");
    // your custom processing logic
  }
</script>

Comments

Popular posts from this blog

Kitchen Order Table:

Selected Items Table: Demo