1

スライダーごとに動的な数の回答を持つ動的な数のスライダーを作成するためのこのコードがあり、コードの2つのことを理解できません:

  1. スライダーを 1 つだけ表示するのはなぜですか? (私のSQLテーブルの最初のIDスライダー番号)

  2. 金額ボックスに正しい ini 値しか表示されないのはなぜですか? スライダーを動かすと表示されるA r r a y(スライダーを動かすたびに1文字)?

    <script>            
        var arrayslidersvalueanswers="<?= $tableslidersanswervalues ?>";                
        <?php foreach ($tableslidersqid as $qid) { ?>
          <?php foreach ($qid as $index) { ?>               
            <?php echo $index;?>                    
            <?php foreach ($tableslidersanswersid as $qanswerid) { ?>
              <?php foreach ($qanswerid as $indexanswer) { ?>
    
        var answers="<?= $qanswerid ?>";                    
        var qid= "<?= $index ?>";
    
    
        jQuery(document).ready(function(){          
    
            /////////////////////SLIDER !!!!!!!!!!!!!!!!!!!!!!!!!!!
            var valor="<?= $tableslidersanswervalues[1][0] ?>"; // Ini slider
    
            $(document.getElementById("amount"+qid+"[]")).val(valor);
    
            $(document.getElementById("slider"+qid+"[]")).slider({ 
                                   min: 1,
                                   max:arrayslidersvalueanswers.length,
    
                                   slide: function( event, ui) {
                                       var ans=answers[0][1] ;
                                       $(document.getElementById("amount"+qid+"[]")).val(answers[ui.value-1][0]);
    
                                       } //end slider ini method builder
    
                 });//END OF FUNCTION
               });
            });// end JavaScript document function
    
                <?php } ?>
              <?php } ?>
             <?php } ?>
          <?php } ?>
    
    </script>
    
    <html>
        <p>
        <label for="amount< ?= $row_Answer['QuestionIDFK'];?>">< ?php echo $row_questionset['QuestionValue']; ?>< /label>
        <input type="text" id="amount< ?= $row_Answer['QuestionIDFK'];?>[]" name="amount< ?= $row_Answer['QuestionIDFK'];?>[]"  />
        </p>                   
        <div id="slider< ?= $row_Answer['QuestionIDFK'];?>[]" name="slider< ?php echo $row_Answer['AnswerValue']; ?>[]" >< /div>
    </html>
    
4

1 に答える 1

0

HTML にはスライダーが 1 つしかありません。

より多くのマークアップとスライダーを生成するには、foreach ループが HTML を通過する必要があると思います。次に、jquery で一般的なセレクターを使用して、すべてのスライダーを機能させることができます。

$("div[id^='slider']").slider(...

「スライダー」で始まる ID を持つすべての div を選択します。

コードを構造化する方法は次のとおりです。

<script>
  $(("div[id^='slider']").slider(//slider configuration here);
</script>

<html>
  <?php foreach($allTableValues as $table): ?>
    <label>...
    <input>....
    <slider id="slider_<?php echo $table->id ?>">...
  <?php endforeach; ?>
</html>
于 2012-12-18T11:30:43.760 に答える