2015-02-26 9 views
1

У меня есть этот код:Как вставить значение радиокнопки в базу данных?

<label style="cursor:pointer;"><input type="radio" name="rads" value="'.$correct.'" id = "radio">'.$answer.'</label> 
<button onclick="myFunction()">Value</button>'; 

где $ правильным является строка в моей базе данных, которая показывает, если вопрос является правильным или неправильным, и имеет значение 1 или 0 ($correct = $row['correct'] enter image description here

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

Например, если вопрос неверен, значение будет «0», и когда пользователь нажмет на него, «неправильная» строка будет увеличена и наоборот.

Я попытался с помощью PHP, чтобы вставить значение:

$vote = isset($_GET['rads']); 
       if($vote == 1){ 
        $sql = mysqli_query($connection, "UPDATE stats SET question_id='$question_id', correct=correct + 1, wrong=0") ; 
       } elseif($vote == 0) { 
        $sql = mysqli_query($connection, "UPDATE stats SET question_id='$question_id', correct=0, wrong=wrong + 1") ; 
       } 

, но только «неправильно» Колонки приращения. Я попытался использовать js для распечатки значения выбранного переключателя:

<p id =" demo"></p> 
<script> 
function myFunction() { 
    var x = document.getElementById("radio").value; 
    document.getElementById("demo").innerHTML = x; 
} 
</script> 

Но ничего не появилось, когда я нажал кнопку. Я также пробовал:

var try = document.getElementsByName('rads'); 
for (var i = 0, len = try.length; i < length; i++) { 
if (try[i].checked == 0) { 
    // increment wrong in db 

    else if (try[i].checked == 1){ 
     //increment correct in db 
    } 

    break; 

} 

Я не уверен, что делать дальше. Извините, если я не понимаю.

ответ

0

Код ниже, наконец, работал для меня после многих испытаний и ошибок. Я добавил функцию ajax, под которой звонят радиокнопки при нажатии.

<script> 
function addVote(str) { 
if (str == "") { 
    document.getElementById("txtHint").innerHTML = ""; 
    return; 
} else { 
    if (window.XMLHttpRequest) { 
     // code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp = new XMLHttpRequest(); 
    } else { 
     // code for IE6, IE5 
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlhttp.onreadystatechange = function() { 
     if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
      document.getElementById("txtHint").innerHTML = xmlhttp.responseText; 
     } 
    } 
    xmlhttp.open("GET","try.php?rad="+str,true); 
    xmlhttp.send(); 
    } 
} 

    </script> 

На try.php, что функция работает от принимает значение кнопки радио и обновляет базу данных в соответствии со значением кнопки щелкнули.

<?php 
$q = $_GET['rad']; 

$con = mysqli_connect('localhost','','','try'); 
if (!$con) { 
    die('Could not connect: ' . mysqli_error($con)); 
} 

mysqli_select_db($con, 'try'); 
if($q == 1){ 
$sql="UPDATE count SET correct = correct+1, wrong=wrong+0 WHERE question_id = 1 "; 
} else{ 
$sql="UPDATE count SET correct=correct+0, wrong=wrong+1 WHERE question_id = 1 "; 
} 
$result = mysqli_query($con,$sql); 


mysqli_close($con); 
?> 

OnClick этой кнопки вызывает функцию таким образом, и должно быть в функции сНу называется txtHint:

onclick="addVote(this.value)" 
0

попробовать этот код

var try = document.getElementsByName('rads'); 
    for (var i = 0, len = try.length; i < length; i++) { 
    if !(try[i].checked) { 
    // increment wrong in db 

    else if (try[i].checked){ 
    //increment correct in db 
    } 

    break; 

    } 
+0

Я не думаю, что будет работать, потому что пользователь должен нажать кнопку для значения для обновления в db. 'if! (try [i] .checked)', который может не работать. – Love

+0

Я тоже попытался найти и решить ошибки в вашем коде. –

+1

Спасибо за помощь. – Love

1

Я не в состоянии четко понять вашу проблему, я нашел ошибку из вашего кода.

<label style="cursor:pointer;"> 
    <input type="radio" name="rads" value="<?php echo $correct; ?>" id = "radio"><?php echo $answer; ?></label> 
<button onclick="myFunction()">Value</button>'; 

попробуйте это. извините, если я ошибаюсь.

+0

Спасибо, но это не сработало для меня. – Love

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