【发布时间】:2021-09-07 14:22:41
【问题描述】:
我正在使用多步表单,我想根据下一个问题显示
到用户选择(评分),但现在无法显示下一个问题,现在我正在关注
数组(包含config_id="1"的所有问题),在这个数组中15是父问题(我们可以通过IsRatingQuestion键检查)和18和19是子问题(我们可以通过ISSubQuestion字段检查, 7 和 8 就像 indenfier(min_value) 所以我可以隐藏/显示,换句话说,如果我给 rating 等于或小于 7 则 ques_id="18" 应该显示
19 应该隐藏
Array
(
[15] => Array
(
[ques_id] => 15
[question] => Would your recommend TOSSIN ?
[type] => range
[IsRatingQuestion] => 1
[ISSubQuestion] =>
[ChildQuesId] => 18::19
[start_range] => 1
[end_range] => 10
[options] => FullName
[mandatory] =>
[status] => 1
[min_value] => 7
[max_show_ques_id] => 19
[show_ques_id] => 18
[max_value] => 8
[ParentQuesId] =>
[SubQuestion] => Array
(
[7] => Array
(
[ques_id] => 18
[question] => which type of mobile you have ?
[type] => check_box
[IsRatingQuestion] =>
[ISSubQuestion] => 1
[ChildQuesId] =>
[start_range] =>
[end_range] =>
[options] => Android::IOS
[mandatory] =>
[status] => 1
[min_value] =>
[max_show_ques_id] =>
[show_ques_id] =>
[max_value] =>
[ParentQuesId] => 15
)
[8] => Array
(
[ques_id] => 19
[question] => which type of laptop you have ?
[type] => check_box
[IsRatingQuestion] =>
[ISSubQuestion] => 1
[ChildQuesId] =>
[start_range] =>
[end_range] =>
[options] => DELL::HP
[mandatory] =>
[status] => 1
[min_value] =>
[max_show_ques_id] =>
[show_ques_id] =>
[max_value] =>
[ParentQuesId] => 15
)
)
)
[20] => Array
(
[ques_id] => 20
[question] => Would your recommend TOSSIN iodos ?
[type] => check_box
[IsRatingQuestion] =>
[ISSubQuestion] =>
[ChildQuesId] => Yes::No
[start_range] =>
[end_range] =>
[options] => Test::Hani
[mandatory] =>
[status] => 1
[min_value] =>
[max_show_ques_id] =>
[show_ques_id] =>
[max_value] =>
[ParentQuesId] =>
)
)
这是我的 html 代码,按照我输入条件的代码(如果值是子问题,那么我输入“ques_id”,这样我就可以根据选择显示隐藏该问题,
<?php
foreach($arr as $records) // rec array containing all values
{?>
<div class="card b-0">
<div class="row justify-content-center">
<div class="col-lg-10 col-md-11">
<?php if($records['type']=="check_box" && $records['ISSubQuestion']=="1" )
{
$schools_array = explode("::", $records['options']);
$result = count($schools_array);
?>
<div id='<?php echo $records['ques_id']; ?>'>
<div class="form-group checkboxes">
<label for="nm" class="form-control-label"><?php echo $records['question']; ?></label>
<div><?php
foreach($schools_array as $s)
{ ?>
<label class="form-container"><?php echo $s; ?>
<input type='checkbox' value='<?php echo $s; ?>' name='check_<?php echo $records['ques_id']; ?>[]' />
<span class="checkmark"></span>
</label>
<?php } ?>
</div>
</div> </div>
<?php
}
这是我的脚本代码
<script>
$(document).ready(function(){
$("#next1").click(function(){
var rating =$("#name").val();
var data = <?php echo json_encode($rec); ?>;
var nd = JSON.stringify(data);
data = $.parseJSON(nd);
$.each(data, function(i, item) {
var Issubquestion=item.ISSubQuestion
var IsRatingQuestion=item.IsRatingQuestion
var min=item.min_value
var max=item.max_value
var removeId=item.max_show_ques_id
if(rating<=min)
{
//hide ques_id (display none)
}
else
{
var removeId=item.show_ques_id
//hide ques_id (display none)
}
});
var datas=data
});
});
</script>
【问题讨论】:
-
"Show hide div based on selection" 纯属客户端操作,请显示相关渲染标记,而不是原始PHP代码。
-
用ajax代替直接php做
标签: javascript php arrays codeigniter