2015-11-19 6 views
-2

Я создал систему викторины, где я попытался создать условие, которое просто просто, если время будет вверх, тогда будет показан правильный ответ, и кнопка будет отключена, но я запутался и не смог чтобы сделать некоторую логику о мне нужно, чтобы вы, ребята, помочь я надеюсь, что вы поможете мнепоказать ответ, когда таймер остановлен

Спасибо

<?php 
function answer() { 
    $answer = $_POST["ans"]; 
    if($answer == 'b') { 
     echo "Correct answer!"; 
    } else { 
     echo "Wrong answer!"; 
    } 
} 
$correct = 'b'; 
?> 
<!DOCTYPE html> 
<html> 
<head> 
<meta charset="utf-8"> 
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
<title>Quiz Sample</title> 
<script type="text/javascript"> 
    function countdown(secs, elem, correct) { 
    var answer = correct; 
    var element = document.getElementById(elem); 
    element.innerHTML = "Please wait for "+secs+" Seconds"; 
    if(secs < 1) { 
     clearTimeout(timer); 
     element.innerHTML = "Timer completed Correct answer is"+answer+" !";     
    } 
    secs--; 
    var timer = setTimeout('countdown('+secs+', "'+elem+'")', 1000); 
    } 
    </script> 
    </head> 
<body> 
    <?php  
     if(isset($_POST["sub"])) { 
      echo answer(); 
     } 
    ?> 
    <div id="status"></div> 
    <form method="POST" action="quiz_test.php"> 
    <p>The question followed is below:</p> 
     <input type="radio" value="a" name="ans" /> A 
     <input type="radio" value="b" name="ans" /> B 
     <input type="radio" value="c" name="ans" /> C 
     <input type="radio" value="d" name="ans" /> D 
    <input type="submit" name="sub" /> 
    </form> 
    <script type="text/javascript">countdown(3, 'status', '<?php echo $correct; ?>');</script> 
    </body> 
    </html> 

ответ

1

вы пропустили один параметр, который является переменной correct

вы также не должны добавьте дополнительную цитату в свою переменную elem, так как она уже является строкой.

setTimeout('countdown('+secs+', '+elem+', '+correct +')', 1000); 

также добавить код, чтобы отключить кнопку ваш отправить

0

причина вы почему условие не является, что, хотя вы вызываете функцию «обратный отсчет()» рекурсивно, вы не передавали правильный ответ, то есть «var answer».

Скорректированный код:

<?php 
function answer() { 
    $answer = $_POST["ans"]; 
    if($answer == 'b') { 
     echo "Correct answer!"; 
    } else { 
     echo "Wrong answer!"; 
    } 
} 
$correct = 'b'; 
?> 
<!DOCTYPE html> 
<html> 
<head> 
<meta charset="utf-8"> 
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
<title>Quiz Sample</title> 
<script type="text/javascript"> 
    function countdown(secs, elem, correct) { 
    if (secs >= 0){ 
    console.log(correct); 
    var answer = correct; 
    var element = document.getElementById(elem); 
    element.innerHTML = "Please wait for "+secs+" Seconds"; 
    if(secs < 1) { 
     clearTimeout(timer); 
     element.innerHTML = "Timer completed. Correct answer is "+ answer +" !";     
    } 
    secs--; 
    var timer = setTimeout('countdown('+secs+', "'+elem+'","'+ answer +'")', 1000); 
    } 
} 
    </script> 
    </head> 
<body> 
    <?php  
     if(isset($_POST["sub"])) { 
      echo answer(); 
     } 
    ?> 
    <div id="status"></div> 
    <form method="POST" action="quiz_test.php"> 
    <p>The question followed is below:</p> 
     <input type="radio" value="a" name="ans" /> A 
     <input type="radio" value="b" name="ans" /> B 
     <input type="radio" value="c" name="ans" /> C 
     <input type="radio" value="d" name="ans" /> D 
    <input type="submit" name="sub" /> 
    </form> 
    <script type="text/javascript">countdown(10, 'status', '<?php echo $correct; ?>');</script> 
    </body> 
    </html> 
0

а. Вы не передали третий параметр для обратного отсчета()
b. Вы пропустили document.getElementById('sub').disabled=true;
c. Таймера не остановился correcty

<?php 
 
function answer() { 
 
    $answer = $_POST["ans"]; 
 
    if($answer == 'b') { 
 
     echo "Correct answer!"; 
 
    } else { 
 
     echo "Wrong answer!"; 
 
    } 
 
} 
 
$correct = 'b'; 
 
?> 
 
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <meta charset="utf-8"> 
 
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
 
    <title>Quiz Sample</title> 
 
    <script type="text/javascript"> 
 
     var timer; 
 

 
     function countdown(secs, elem, correct) { 
 
      var answer = correct; 
 
      var element = document.getElementById(elem); 
 
      element.innerHTML = "Please wait for " + --secs + " Seconds"; 
 
      timer = setTimeout('countdown(' + secs + ', "' + elem + '", "' + answer + '")', 1000); 
 
      if (secs < 1) { 
 
       clearTimeout(timer); 
 
       element.innerHTML = "Timer completed Correct answer is " + answer + " !"; 
 
       document.getElementById('sub').disabled = true; 
 
      } 
 
     } 
 
    </script> 
 
</head> 
 

 
<body> 
 
    <?php if(isset($_POST[ "sub"])) { echo answer(); } ?> 
 
    <div id="status"></div> 
 
    <form method="POST" action="quiz_test.php"> 
 
     <p>The question followed is below:</p> 
 
     <input type="radio" value="a" name="ans" />A 
 
     <input type="radio" value="b" name="ans" />B 
 
     <input type="radio" value="c" name="ans" />C 
 
     <input type="radio" value="d" name="ans" />D 
 
     <input type="submit" name="sub" id="sub" /> 
 
    </form> 
 
    <script type="text/javascript"> 
 
     countdown(3, 'status', '<?php echo $correct; ?>'); 
 
    </script> 
 
</body> 
 
</html>

Помнится, в фрагменте кода здесь, PHP не будет выполнен, но правильный ответ будет напечатан при запуске соответствующим образом.

+0

Действительно ценится большое спасибо, это была моя глупая ошибка :) –

+0

Рад, что я помог вам, убедитесь, что принять, чтобы закрыть этот вопрос – Thamilan

1

может сделать подобное ... проверить его ...

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
<meta charset="utf-8"> 
 
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
 
<title>Quiz Sample</title> 
 
</head> 
 
<body> 
 
    <div id="status"></div> 
 
    <form method="POST" action="quiz_test.php"> 
 
    <p>The question followed is below:</p> 
 
     <input type="radio" value="a" name="ans" class="a" /> A 
 
     <input type="radio" value="b" name="ans" class="b" /> B 
 
     <input type="radio" value="c" name="ans" class="c" /> C 
 
     <input type="radio" value="d" name="ans" class="d" /> D 
 
    <input type="submit" name="sub" /> 
 
    </form> 
 
    
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
 
    <script type="text/javascript"> 
 
    \t $(document).ready(function(){ 
 
    \t \t var correctAns = "a"; 
 
    \t \t setTimeout(showUpCorrectAns, 1000, correctAns); 
 
    \t }); 
 

 
    \t function showUpCorrectAns(correctAns){ 
 
    \t \t $('input[type="submit"]').attr('disabled',true); 
 
    \t \t $('input.'+correctAns).attr('checked','checked'); 
 
    \t } 
 
    </script> 
 

 
</body> 
 
</html>

+0

Спасибо большое спасибо вы все –

+0

мое удовольствие ... –

Смежные вопросы