我有这段代码用于创建动态数量的 slider ,每个 slider 有动态数量的答案,但我无法理解代码中的两件事:
为什么只显示一个 slider ? (我的sql表上的第一个id slider 编号)
为什么金额框中只出现正确的ini值?当您移动 slider 时,会出现
A r r a y
(每次移动 slider 时出现一个字符)?<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>
最佳答案
您的 HTML 中只有一个 slider 。
我认为你的 foreach 循环应该遍历你的 HTML 以生成更多的标记和 slider 。然后,您可以使用 jquery 中的通用选择器来使所有 slider 正常工作。
$("div[id^='slider']").slider(...
将选择 id 以“slider”开头的所有 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>
关于php - javascript、php 和 html 上的 slider 动态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13930345/