১৮-৭ : Modal এর ব্যবহার
এই মডিউলে ডক্টর ডিটেইলস পেজে Take Appointment বাটনে ক্লিক করলে একটি মোডাল শো করার কাজ করা হবে।
docDetails.js ফাইল নিচের মত করে লিখে ফেলি-
Code:: 18.7.1 docDetails.js
const getparams = () => {
const param = new URLSearchParams(window.location.search).get("doctorId");
loadTime(param);
fetch(`https://testing-8az5.onrender.com/doctor/list/${param}`)
.then((res) => res.json())
.then((data) => displayDetails(data));
fetch(`https://testing-8az5.onrender.com/doctor/review/?doctor_id=${param}`)
.then((res) => res.json())
.then((data) => doctorReview(data));
};
const doctorReview = (reviews) => {
reviews.forEach((review) => {
const parent = document.getElementById("doc-details-review");
const div = document.createElement("div");
div.classList.add("review-card");
div.innerHTML = `
<img src="./Images/girl.png" alt="" />
<h4>${review.reviewer}</h4>
<p>
${review.body.slice(0, 100)}
</p>
<h6>${review.rating}</h6>
`;
parent.appendChild(div);
});
};
const displayDetails = (doctor) => {
console.log(doctor);
const parent = document.getElementById("doc-details");
const div = document.createElement("div");
div.classList.add("doc-details-container");
div.innerHTML = `
<div class="doctor-img">
<img src=${doctor.image} alt="" />
</div>
<div class="doc-info">
<h1>${doctor.full_name} </h1>
${doctor.specialization.map((item) => {
return `<button class="doc-detail-btn">${item}</button>`;
})}
${doctor.designation.map((item) => {
return `<h4 >${item}</h4>`;
})}
<p class="w-50">
Lorem ipsum dolor sit amet consectetur adipisicing elit. Et quibusdam
quis excepturi tempore. Eius, qui!
</p>
<h4>Fees: ${doctor.fee} BDT</h4>
<button
type="button"
class="btn btn-primary"
data-bs-toggle="modal"
data-bs-target="#exampleModal"
>
Take Appointment
</button>
</div>
`;
parent.appendChild(div);
};
getparams();
HTML ফাইলে মোডাল এ্যাড করে নিচের মত লিখি-
Code:: 18.1.2 docDetails.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Detail</title>
<link
href="https://cdn.jsdelivr.net/npm/bootstrap@5/dist/css/bootstrap.min.css"
rel="stylesheet"
integrity="..."
/>
<link
href="https://cdn.jsdelivr.net/npm/swiffy-slider@1.6.0/dist/css/swiffy-slider.min.css"
rel="stylesheet"
crossorigin="anonymous"
/>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<nav class="d-flex justify-content-around align-items-center p-4">
<div class="logo-container d-flex align-items-center gap-2">
<img src="./Images/stethoscope 1.png" alt="" />
<h3>SmartCare</h3>
</div>
<div class="menu-container d-flex gap-3">
<li class="menu">Home</li>
<li class="menu">Services</li>
<li class="menu">Contact us</li>
<li class="menu">Login</li>
</div>
</nav>
<div id="doc-details"></div>
<div class="review-container p-5 mt-5 w-75 m-auto">
<h1 class="title">Clients Review</h1>
<p class="description text-center w-50 m-auto">
Lorem ipsum dolor sit amet consectetur adipisicing elit. Adipisci
<br />
quis sit, aperiam deserunt at accusamus!
</p>
<div class="reviews">
<div
class="swiffy-slider slider-item-show2 slider-item-reveal slider-nav-outside slider-nav-round slider-nav-visible slider-indicators-outside slider-indicators-round slider-indicators-dark slider-nav-animation slider-nav-animation-fadein slider-item-first-visible"
>
<ul id="doc-details-review" class="slider-container py-4"></ul>
<button
type="button"
class="slider-nav"
aria-label="Go left"
></button>
<button
type="button"
class="slider-nav slider-nav-next"
aria-label="Go left"
></button>
<div class="slider-indicators">
<button class="active" aria-label="Go to slide"></button>
<button aria-label="Go to slide"></button>
<button aria-label="Go to slide"></button>
<button aria-label="Go to slide"></button>
<button aria-label="Go to slide" class=""></button>
</div>
</div>
</div>
</div>
<!-- modal area -->
<!-- Button trigger modal -->
<!-- Modal -->
<div
class="modal fade"
id="exampleModal"
tabindex="-1"
aria-labelledby="exampleModalLabel"
aria-hidden="true"
>
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Submit Your Info</h5>
<button
type="button"
class="btn-close"
data-bs-dismiss="modal"
aria-label="Close"
></button>
</div>
<div class="modal-body">
<input type="radio" name="status" value="Offline" /> Offline
<input type="radio" name="status" value="Online" /> Online<br />
<input id="symptom" type="text" placeholder="Type Your symptom" />
<br />
<select id="time-container" class="p-2 mt-2" id="time" name="time">
<!-- <option value="none" selected>available Time</option>
<option value="male">Male</option>
<option value="female">Female</option>
<option value="other">other</option> -->
</select>
</div>
<div class="modal-footer">
<button
type="button"
class="btn btn-secondary"
data-bs-dismiss="modal"
>
Close
</button>
<button
onclick="handleAppointment()"
type="button"
class="btn btn-primary"
>
Take Appointment
</button>
</div>
</div>
</div>
</div>
<button onclick="handlePdf()">dddd</button>
<footer class="p-5">
<div class="container w-75 m-auto row p-5">
<div class="col-md-6">
<p><small>Copyright © Smartcare. All Rights Reserved</small></p>
<h5>Follow US</h5>
<div class="icons">
<img class="icon" src="./Images/LinkedIn.png" alt="" />
<img class="icon" src="./Images/YouTube.png" alt="" />
<img class="icon" src="./Images/LinkedIn.png" alt="" />
</div>
</div>
<div class="col-md-3">
<h5>Company</h5>
<li>ABout</li>
<li>Contact us</li>
<li>Culture</li>
<li>Blog</li>
</div>
<div class="col-md-3">
<h5>Company</h5>
<li>ABout</li>
<li>Contact us</li>
<li>Culture</li>
<li>Blog</li>
</div>
</div>
<hr />
<p class="text-center mt-3">
<small>Copyright © Smartcare. All Rights Reserved</small>
</p>
</footer>
<!-- add script file -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2pdf.js/0.9.3/html2pdf.bundle.js"></script>
<script src="./app.js"></script>
<script src="./docDetails.js"></script>
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@5/dist/js/bootstrap.bundle.min.js"
integrity="..."
></script>
<script
src="https://cdn.jsdelivr.net/npm/swiffy-slider@1.6.0/dist/js/swiffy-slider.min.js"
crossorigin="anonymous"
defer
></script>
</body>
</html>
Take Appointment বাটনে ক্লিক করলে মোডালটি দেখা যাবে।
.
Last updated