2016-10-23 82 views
0

這是一個測驗網站,但是當我提交答案及其正確答案時,彈出一個新問題,但正確答案和最後正確答案有效(上一次正確答案無限,直到新答案爲止)我試了幾個小時才解決問題, ......最後的正確答案的心不是想與新問題的工作爲什麼最後的正確答案仍然有效?

var right = 0 
 
function start(){ 
 
\t var name = $('input#answer').val() 
 
\t if ($.trim(name) != ''){ 
 
\t \t $.post('ajax/name.php', {name: name}, function(data){ 
 
\t \t \t $('#correctbox').text(data) 
 
\t \t if (name == data){ 
 
\t \t \t rightfunc() 
 
\t \t \t rand() 
 
\t \t }else{ 
 
\t \t \t rand() 
 
\t \t } 
 
\t \t }) 
 
\t } 
 
} 
 
function rand(){ 
 
\t \t $.post('ajax/test.php', {name: name}, function(data){ 
 
\t \t \t $('#questionsbox').text(data) 
 
\t \t \t document.getElementById("answer").value = ''; 
 
\t \t }) 
 
} 
 
function rightfunc(){ 
 
\t right = right + 1 
 
\t rightbox.innerHTML = "<b>Correct | "+right+"</b>" 
 
}
<?php 
 
if (isset($_POST['name']) === true && empty($_POST['name']) === false){ 
 

 
\t require '../db/connect.php'; 
 
\t mysql_set_charset('utf8'); 
 
\t $name = mysql_real_escape_string(strip_tags(addslashes(trim($_POST['name'])))); 
 
\t $query = ("SELECT * 
 
\t FROM japanese 
 
\t WHERE Romanji = '$name' 
 
\t ")or die(mysql_error()); 
 
\t 
 
\t $response = mysql_query($query); 
 
    
 
\t if($response === false){ 
 
\t \t die(mysql_error()); 
 
\t } 
 
\t while($row = mysql_fetch_array($response)){ 
 
\t \t if($name == $row['Romanji']){ 
 
\t \t \t echo ($row['Romanji']); 
 
\t \t }else{ 
 
\t \t \t echo ('Name not found'); 
 
\t \t } 
 
\t } 
 
} 
 
?>

+0

發佈你的表單html,或者你用來觸發ajax的任何東西。 – Rasclatt

回答

0

當你給一個正確的答案,你不清空input#answer

.post('ajax/name.php', {name: name}, function(data){ 
      $('#correctbox').text(data); 
      //add next line so you can remove it from rand() 
      document.getElementById("answer").value = ''; 
     if (name == data){ 
      rightfunc() 
      rand() 
     }else{ 
      rand() 
     } 
     }) 

而另一件事就是爲什麼你總是發送相同的查詢數據庫?如果你的問題改變了,你的查詢應該不會有所不同?

+0

function start(){ \t .post('ajax/name.php',{name:name},function(data){('#correctbox')。text(data); // add next line所以你可以從RAND() 的document.getElementById( 「答案」)值= '' 將其刪除;如果 (名稱==數據){ rightfunc() 蘭特() }其他{ 蘭特() } }) } – kuini

+0

網站現在不會使用此代碼 – kuini

+0

用你說的我假設你的代碼一遍又一遍地發送'input#answer'的最後一個值而不寫入新的值,這是java的問題,但是我的問題是爲什麼你的查詢(在PHP頁面中)每次問題改變時都是一樣的?我的意思是用戶可以寫出最後一個正確的答案(即使你做了'var name = null'),發送它並得到點。您的查詢與您的問題之間沒有任何關聯。 –

相關問題