【问题标题】:Show hide div according to selection not working jquery Php根据选择显示隐藏div不起作用jquery Php
【发布时间】:2021-09-07 14:22:41
【问题描述】:

我正在使用多步表单,我想根据下一个问题显示 到用户选择(评分),但现在无法显示下一个问题,现在我正在关注 数组(包含config_id="1"的所有问题),在这个数组中15是父问题(我们可以通过IsRatingQuestion键检查)和1819是子问题(我们可以通过ISSubQuestion字段检查, 78 就像 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


【解决方案1】:

使用

$(document).on('click', '#id', function() {}) 

改为

$(document).ready(function(){
 $("#next1").click(function(){

可能会有所帮助。

【讨论】:

    猜你喜欢
    • 2015-12-31
    • 1970-01-01
    • 2018-04-17
    • 1970-01-01
    • 2017-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多