javascript — сохраняйте значения флажков, пока не нажмете кнопку «Отправить»

Мне нужно создать бумагу для вопросов с правдивыми / ложными ответами. Каждый вопрос имеет 5 ответов. Как a, b, c, d и e.

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

пожалуйста, дайте мне знать, как сохранить значения до отправки.

Мой пример кода,

 <script>
function sendReq(x,y)
{
var answer_id   = $("input[name=answer]").val();
$.ajax({
type: 'POST',
url: 'test_submit.php',
data: { qid: x, pid: y,aid: answer_id },
success: function(data) {
$("#answer_response").html(data);
}
});
}
</script>
<script>
function clickCheckbox(){

var checkedValue = null;
var inputElements = document.getElementsByClassName('messageCheckbox');
for(var i=0; inputElements[i]; ++i){
if(inputElements[i].checked){
checkedValue = inputElements[i].value;
$("#answer").val(checkedValue);
break;
}
else
{
$("#answer").val(null);
}

}
}
</script>

<ul class="list6">
<?php
include('config/config2.php');

$rec_limit = 1;
$query = "SELECT count(question_id) FROM question WHERE paper_id='".$paperid."'";
$result = mysqli_query($con,$query);
if(! $result )
{
die('Could not get data: ' . mysqli_error());
}
$row = mysqli_fetch_array($result, MYSQLI_NUM );
$rec_count = $row[0];
if( isset($_GET{'page'} ) )
{
$page = $_GET{'page'} + 1;
$offset = $rec_limit * $page ;
}
else
{

$page = 0;
$offset = 0;

}
$left_rec = $rec_count - ($page * $rec_limit);

if( isset($_GET{'prnt'} ) )
{
if($rec_count>(($page+1)* $rec_limit))
$prnt=($page+1)* $rec_limit." of ".$rec_count;
else
$prnt=$rec_count." of ".$rec_count;
}
else
{
if($rec_count>$rec_limit)
$prnt=$rec_limit." of ".$rec_count;
else
$prnt=$rec_count." of ".$rec_count;
}

$query = "SELECT * FROM question WHERE paper_id='".$paperid."' LIMIT $offset, $rec_limit";

$result = mysqli_query($con, $query );
if(! $result )
{
die('Could not get data: ' . mysqli_error());

}while($row = mysqli_fetch_array($result))
{
echo "<form action='' method='post' onsubmit='myButton.disabled = true; return true;'>";
$result2 = mysqli_query($con,"SELECT * FROM answer");

if($row['paper_id'] == $paperid){
echo '<li>' .$row['question'].'</li>';
$question_id;
$paper_id;

while($row2 = mysqli_fetch_array($result2))
{

if($row['question_id'] == $row2['question_id']){
$question_id = $row['question_id'];$scheme = $row['scheme_id'];

$query_scheme = "SELECT * FROM mark_scheme WHERE scheme_id='".$scheme."'";
$result_scheme = mysqli_query($con, $query_scheme );

$row_scheme = mysqli_fetch_array($result_scheme);

if($row_scheme['type_id'] == 1){
$answer_id = $row2['answer_id'];
$paper_id = $row2['paper_id'];

echo '<li><input type="radio" id="answer_id_group" name="answer_id" value="'.$answer_id.'" onchange="getRadioValue();">'.$row2['answer'].'</li>';

}

else {
$answer_id = $row2['answer_id'];
$paper_id = $row2['paper_id'];
echo '<li><input type="checkbox" id="answer_id_group" class="messageCheckbox" name="chb[]" value="1" onclick="clickCheckbox()">True<input type="checkbox" id="answer_id_group" class="messageCheckbox" name="chb[]" value="0" onclick="clickCheckbox()">False   <input type="hidden" id="answer_id_group" name="chb[]" value="'.$answer_id.'">'.$row2['answer'].'</li>';

}
}

}
echo '<input type="hidden" id="email_group" name="email" value="'.$email.'">';

echo '<input type="hidden" id="paper_id" name="paper_id" value="'.$paper_id.'">';
echo '<input type="hidden" id="question_id" name="question_id" value="'.$question_id.'">';

echo '<input type="hidden" id="question_id_group" name="question_id" value="'.$row['question_id'].'">';

echo '<input type="hidden" id="answer" name="answer" value="">';
echo '<input type="hidden" id="paper_id_group" name="paper_id" value="'.$row['paper_id'].'">';$already_submitted = mysqli_query($con,"SELECT * FROM student_answer WHERE user='".$email."' AND question_id='".$question_id."' AND type=1");

if(mysqli_num_rows($already_submitted))
{
echo '<style>#submit_answer{ display: none;}</style>';

}else{

}

echo '<li><input type="submit" name="myButton" value="Submit" class="user-btn" id="submit_answer" onclick="return sendReq('.$question_id.','.$paper_id.');"></li>';

echo '<br><br>';

}
echo "</form>";

}if( $page == 0 )
{
echo $prnt." |";
echo "<a href=\"?page=$page&prnt=$prnt\">"; echo "Next >>"; echo"</a>";
$left_rec = $rec_count - ($page * $rec_limit);

if( isset($_GET{'prnt'} ) )
{
if($rec_count>(($page+1)* $rec_limit))
$prnt=($page+1)* $rec_limit." of ".$rec_count;
else
$prnt=$rec_count." of ".$rec_count;
}
else
{
if($rec_count>$rec_limit)
$prnt=$rec_limit." of ".$rec_count;
else
$prnt=$rec_count." of ".$rec_count;
}

$query = "SELECT * FROM question WHERE paper_id='".$paperid."' LIMIT $offset, $rec_limit";

$result = mysqli_query($con, $query );
if(! $result )
{
die('Could not get data: ' . mysqli_error());

}while($row = mysqli_fetch_array($result))
{
echo "<form action='' method='post' onsubmit='myButton.disabled = true; return true;'>";
$result2 = mysqli_query($con,"SELECT * FROM answer");

if($row['paper_id'] == $paperid){
echo '<li>' .$row['question'].'</li>';
$question_id;
$paper_id;

while($row2 = mysqli_fetch_array($result2))
{

if($row['question_id'] == $row2['question_id']){
$question_id = $row['question_id'];$scheme = $row['scheme_id'];

$query_scheme = "SELECT * FROM mark_scheme WHERE scheme_id='".$scheme."'";
$result_scheme = mysqli_query($con, $query_scheme );

$row_scheme = mysqli_fetch_array($result_scheme);

if($row_scheme['type_id'] == 1){
$answer_id = $row2['answer_id'];
$paper_id = $row2['paper_id'];

echo '<li><input type="radio" id="answer_id_group" name="answer_id" value="'.$answer_id.'" onchange="getRadioValue();">'.$row2['answer'].'</li>';

}

else {
$answer_id = $row2['answer_id'];
$paper_id = $row2['paper_id'];
echo '<li><input type="checkbox" id="answer_id_group" class="messageCheckbox" name="chb[]" value="1" onclick="clickCheckbox()">True<input type="checkbox" id="answer_id_group" class="messageCheckbox" name="chb[]" value="0" onclick="clickCheckbox()">False   <input type="hidden" id="answer_id_group" name="chb[]" value="'.$answer_id.'">'.$row2['answer'].'</li>';

}
}

}
echo '<input type="hidden" id="email_group" name="email" value="'.$email.'">';

echo '<input type="hidden" id="paper_id" name="paper_id" value="'.$paper_id.'">';
echo '<input type="hidden" id="question_id" name="question_id" value="'.$question_id.'">';

echo '<input type="hidden" id="question_id_group" name="question_id" value="'.$row['question_id'].'">';

echo '<input type="hidden" id="answer" name="answer" value="">';
echo '<input type="hidden" id="paper_id_group" name="paper_id" value="'.$row['paper_id'].'">';$already_submitted = mysqli_query($con,"SELECT * FROM student_answer WHERE user='".$email."' AND question_id='".$question_id."' AND type=1");

if(mysqli_num_rows($already_submitted))
{
echo '<style>#submit_answer{ display: none;}</style>';

}else{

}

echo '<li><input type="submit" name="myButton" value="Submit" class="user-btn" id="submit_answer" onclick="return sendReq('.$question_id.','.$paper_id.');"></li>';

echo '<br><br>';

}
echo "</form>";

}if( $page == 0 )
{
echo $prnt." |";
echo "<a href=\"?page=$page&prnt=$prnt\">"; echo "Next >>"; echo"</a>";}
else if( $left_rec < $rec_limit )
{

$last = $page - 2;
echo "<a href=\"?page=$last&prnt=$prnt\"> "; echo "<< Last"; echo"</a>";

}
else if( $page > 0 )
{
$last = $page - 2;

echo "<a href=\"?page=$last&prnt=$prnt\">"; echo "<< Last"; echo"</a> |";
echo " ".$prnt." |";
echo "<a href=\"?page=$page&prnt=$prnt\">"; echo "Next >>"; echo"</a>";

}
?>
</ul>
<div id="answer_response" class="answer-box"></div>

Пожалуйста, кто-нибудь может помочь мне решить эту проблему?

0

Решение

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

$("input[name=answer]:checked").val()
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector