我有多项选择题,根据累进分数,用户需要转到不同的问题。例如,每个问题有 4 个答案,每个答案都有一个分数。
Question 1
Answer 1 = 5 points
Answer 2 = 10 points
Answer 3 = 15 points
Answer 4 = 20 points
Question 2
Answer 1 = 5 points
Answer 2 = 10 points
Answer 3 = 15 points
Answer 4 = 20 points
条件设置在后端,我可以说如果总分是 25,则转到问题 7,否则如果任何其他分数不是 25,则继续下一个问题,即:问题 3。
我只是使用锚标签在问题之间移动。如果您查看下面的逻辑部分,我就会被绊倒。跳转到逻辑需要当前分数进行比较。要查明这条线,就是这条线:
<?php if( get_field( 'go_to' ) && get_sub_field( 'score' ) == // CURRENT SCORE): ?>
每次用户单击单选按钮选项时,当前分数都会发生变化。
$().ready(function(){
function calcscore(){
var score = 0;
$(".calc:checked").each(function(){
score+=parseInt($(this).val());
});
}
$(".calc").change(function(){
calcscore()
});
});
PHP:
<?php if ($questions->have_posts() ):
while ($questions->have_posts() ): $questions->the_post();
?>
<!--Show Question-->
<div class="question-container" id="<?php echo get_the_ID(); ?>">
<div class="question">
<h5><?php the_title(); ?></h5>
<!-- Show answers-->
<?php if (have_rows( 'answers' ) ):
while (have_rows( 'answers' ) ): the_row();
?>
<input type="radio" name="input<?php echo get_the_ID(); ?>" id="input<?php echo get_row_index(); ?>" value="<?php echo get_sub_field( 'score' ); ?>" class="calc">
<label for="input<?php echo get_row_index(); ?>"><?php echo get_sub_field( 'answer' ); ?></label>
<?php endwhile; ?>
<?php endif; ?>
<!--logic-->
<?php if (have_rows( 'condition' ) ):
while (have_rows( 'condition' ) ): the_row();
?>
<?php if( get_field( 'go_to' ) && get_sub_field( 'score' ) == // CURRENT SCORE): ?>
<a href="#<?php echo get_field( 'go_to' )->ID; ?>" class="next-btn">Next</a>
<?php else: ?>
<a href="#<?php echo get_the_ID() + 1; ?>" class="next-btn">Next</a>
<?php endif; ?>
UYOU