<div class="col-xl-12">
<div class="card"> <div class="card-header"> <h4 class="card-title">Multiple Choice Questions (MCQ)</h4> </div> <div class="card-body"> <div id="smartwizard" class="form-wizard order-create"> <ul class="nav nav-wizard"> <?php $k=1; foreach ($questions as $key => $val) { ?> <li> <a onclick="goToForm(<?= $k ?>)" id="active<?= $k ?>" class="nav-link <?= ($k == 1) ? 'active':'' ?>" href="javascript:void(0)"> <span></span> <p class="mt-2 mb-0"><?= $key ?></p> </a> </li> <?php $k++; } ?> </ul> <?php if (isset($questions)) { $cont = 0; foreach ($questions as $key => $val) { foreach ($val as $ky=>$row) { $cont += 1; } } $tot = 0; $j = 1; ?> <form method="POST" action="<?= base_url('ExamController/storeExam') ?>" id="storeForm"> <input type="hidden" name="user_id" value="<?= $userData['userId'] ?>" /> <input type="hidden" name="schedule_id" value="<?= $userData['schedule'] ?>" /> <input type="hidden" name="category_id" value="<?= $userData['categoryId'] ?>" /> <div class="tab-content"> <?php foreach ($questions as $key => $val) { ?> <div class="Questiontab<?= $j ?> tbs" style="display:<?= ($j > 1) ? 'none':'block' ?>"> <div id="wizard_Service<?= $val['categoryId'] ?>" class="tab-pane " role="tabpanel"> <?php foreach($val as $k=>$res){ $tot +=1; ?> <h4 class="text-left"><?= $k ?></h4> <?php foreach ($res as $ky=>$row) { ?> <div class="row"> <div class="col-lg-12 mb-2"> <h5><?= $ky+1; ?> ) <?= strip_tags($row->question) ?></h5> <input type="hidden" name="question[]" value="<?= $row->id ?>" /> <input type="hidden" name="org_ques[]" value="<?= $row->answer ?>" /> </div> <div class="col-lg-12 mb-2"> <div class="form-check custom-checkbox mb-3 checkbox-warning"> <input type="radio" class="form-check-input" id="customRadioBox" name="questions[<?= $row->id ?>]" value="a"> <label class="form-check-label" for="customRadioBox"><?= $row->option_a ?></label> </div> </div> <div class="col-lg-12 mb-2"> <div class="form-check custom-checkbox mb-3 checkbox-warning"> <input type="radio" class="form-check-input" id="customRadioBox" name="questions[<?= $row->id ?>]" value="b"> <label class="form-check-label" for="customRadioBox"><?= $row->option_b ?></label> </div> </div> <div class="col-lg-12 mb-2"> <div class="form-check custom-checkbox mb-3 checkbox-warning"> <input type="radio" class="form-check-input" id="customRadioBox" name="questions[<?= $row->id ?>]" value="c"> <label class="form-check-label" for="customRadioBox"><?= $row->option_c ?></label> </div> </div> <div class="col-lg-12 mb-2"> <div class="mb-3"> <div class="form-check custom-checkbox mb-3 checkbox-warning"> <input type="radio" class="form-check-input" id="customRadioBox" name="questions[<?= $row->id ?>]" value="d"> <label class="form-check-label" for="customRadioBox"><?= $row->option_d ?></label> </div> </div> </div> </div> <?php } ?> <div class="row"> <div class="col-md-7"></div> <div class="col-md-3"> <?php if ($j != 1) { ?> <a href="javascript:previousQuestion(<?= $j ?>)" class="btn btn-primary pull-right">Previous</a> <?php } ?> <?php if($tot == $cont){ ?> <input type="submit" name="submitt" value="Submit" class="btn btn-info" /> <?php }else{ ?> <a href="javascript:nextQuestion(<?= $j ?>)" class="btn btn-primary pull-right">Next</a> <?php } ?> </div> </div> </div> </div> <?php $j++; } } ?> </div> </form> <?php } ?> </div> </div> </div> </div> JS Functions:
function previousQuestion(page) { var pre = page - 1; $('.Questiontab' + page).hide(); $('#active'+pre).addClass('active'); $('#active'+page).removeClass('active'); if (pre == 0) { $('.Questiontab1').show(); } else { $('.Questiontab' + pre).show(); } $('html, body').scrollTop(0); } function nextQuestion(page) { var next = page + 1; $('.Questiontab' + page).hide(); $('.Questiontab' + next).show(); $('#active'+next).addClass('active'); $('#active'+page).removeClass('active'); $('html, body').scrollTop(0); } function goToForm(page) { $('.Questiontab' + page).removeClass('tbs'); $('.nav-link').removeClass('active'); $('#active'+page).addClass('active'); $('.tbs').hide(); // Hide all forms $('.Questiontab' + page).show(); $('.Questiontab' + page).addClass('tbs'); } Disable RightClick and Copy Paste and f12 Key$(document).ready(function(){ //Right-click disabled $(document).on("contextmenu", function(e) { e.preventDefault(); }); }); $(document).on('cut copy paste', function(event) { event.preventDefault(); }); // F12 key Disabled document.onkeydown = function (e) { if (e.keyCode == 123) { return false; } };CKeditor:ClassicEditor .create( document.querySelector('#editor'+j)) .then( editor => { editor.editing.view.document.on('paste', (event, data) => { event.stop(); }); editor.config.disableNativeSpellChecker = true; editor.editing.view.document.on('cut', (event, data) => { event.stop(); // Prevent cut }); editor.editing.view.document.on('keyup', (event, data) => { handleKeyUp(editor); }); function handleKeyUp(editor) { let content = editor.getData(); let characterCount = content.split(" ").length; if (characterCount >= maxLength) { editor.isReadOnly = true; return false; }else{ editor.isReadOnly = false; } } } ) .catch( error => { console.error( error ); } ); })
No comments:
Post a Comment