Builder Code
Builder Code
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Course Curriculum Builder</title>
<style>
body {
font-family: Arial, sans-serif;
}
#courseBuilder {
margin-bottom: 150px;
margin-top: 30px;
padding: 20px;
border-radius: 10px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
.section {
margin-top: 20px;
padding: 10px;
background-color: #f9f9f9;
border-radius: 5px;
position: relative;
}
.delete-button {
position: absolute;
top: 0px;
right: 27px;
background-color: #ff5c5c;
color: white;
padding: 5px 10px;
border: none;
border-radius: 4px;
cursor: pointer;
}
label {
display: block;
margin-bottom: 5px;
}
input, select, textarea {
width: calc(100% - 16px);
padding: 8px;
margin-bottom: 10px;
box-sizing: border-box;
border: 1px solid #ccc;
border-radius: 4px;
}
button {
background-color: #4caf50;
color: white;
padding: 10px;
border: none;
border-radius: 4px;
cursor: pointer;
}
.quiz-question-container {
margin-top: 10px;
padding: 10px;
border: 1px solid #ccc;
border-radius: 4px;
}
.quiz-question-container label,
.quiz-question-container input {
display: block;
margin-bottom: 5px;
}
</style>
</head>
<body>
<div id="courseBuilder">
<form id="curriculumForm" action="builder/display_data.php" method="post">
<div id="sectionsContainer">
<!-- Sections will be dynamically added here -->
</div>
<script>
let sectionCounter = 1;
function addSection() {
const sectionsContainer = document.getElementById('sectionsContainer');
const sectionDiv = document.createElement('div');
sectionDiv.className = 'section';
sectionDiv.id = `section${sectionCounter}`;
sectionDiv.innerHTML = `
<button class="delete-button" onclick="deleteSection($
{sectionCounter})">Delete</button>
<label for="sectionName${sectionCounter}" class="fw-bold text-
dark">Section Name:</label>
<input type="text" id="sectionName${sectionCounter}"
name="sectionName[]">
function deleteSection(sectionId) {
const sectionToRemove = document.getElementById(`section${sectionId}`);
sectionToRemove.parentNode.removeChild(sectionToRemove);
}
function updateSpecificContent(sectionId) {
const contentOptionSelect = document.getElementById(`contentOption$
{sectionId}`);
const specificContentDiv = document.getElementById(`specificContent$
{sectionId}`);
const quizQuestionsContainerId = `quizQuestionsContainer${sectionId}`;
function updateLectureDetails(sectionId) {
const lectureTypeSelect = document.getElementById(`lectureType$
{sectionId}`);
const lectureDetailsDiv = document.getElementById(`lectureDetails$
{sectionId}`);
function updateAssignmentDetails(sectionId) {
const assignmentTypeSelect = document.getElementById(`assignmentType$
{sectionId}`);
const assignmentDetailsDiv =
document.getElementById(`assignmentDetails${sectionId}`);
if (questionToDelete) {
// Remove the questionDiv from quizQuestionsContainer
quizQuestionsContainer.removeChild(questionToDelete.parentElement);
questionInputs.forEach(input => {
const oldId = input.id;
const newId = oldId.replace(/\d+$/, index + 1);
const deleteButton =
questionDiv.querySelector(`[onclick^="deleteQuizQuestion(${sectionId}"]`);
if (deleteButton) {
deleteButton.setAttribute('onclick', `deleteQuizQuestion($
{sectionId}, '${questionContainerId}', ${index + 1})`);
}
});
}
const quizQuestionsContainer =
document.getElementById(questionContainerId);
const questionCounter = quizQuestionsContainer.childElementCount + 1;
<label for="quizOption1${sectionId}_${questionCounter}">Option
1:</label>
<input type="text" id="quizOption1${sectionId}_${questionCounter}"
name="quizOption1_${sectionId}[]">
<label for="quizOption2${sectionId}_${questionCounter}">Option
2:</label>
<input type="text" id="quizOption2${sectionId}_${questionCounter}"
name="quizOption2_${sectionId}[]">
<label for="quizOption3${sectionId}_${questionCounter}">Option
3:</label>
<input type="text" id="quizOption3${sectionId}_${questionCounter}"
name="quizOption3_${sectionId}[]">
<label for="quizOption4${sectionId}_${questionCounter}">Option
4:</label>
<input type="text" id="quizOption4${sectionId}_${questionCounter}"
name="quizOption4_${sectionId}[]">
</script>
</body>
</html>