У меня есть форма с циклом, и я бы хотел использовать таймер. Проблема находится вне цикла, он работает нормально, но внутри цикла он не работает. Для 3-х входных полей можно увидеть таймер, но при выборе времени он изменит только первый квадрат.
<?php for ($i = 1; $i <= 3; $i++) { ?> Time <input type='text' name='timepicker[<?= $i ?>]' class="datepicker_dynamic" id='timepicker[<?= $i ?>]' value=''/> <?php } ?> <script type='text/javascript'> $(document).ready(function() { $('.datepicker_dynamic').timepicker({ showLeadingZero: false, }); });
Я немного изменил ваш код:
<?php for ($i = 1; $i <= $_SESSION["number"]; $i++) { ?> Time <input type='text' name='timepicker[<?= $i ?>]' id='timepicker_<?= $i ?>' value=''/> <script type='text/javascript'> $(document).ready(function() { $('#timepicker_<?= $i ?>').timepicker({ showLeadingZero: false, }); }); </script> <?php } ?>
Опять же, я согласен с @Brad в том, что, вероятно, хорошая идея не генерировать много JS без необходимости, особенно если вы можете сделать следующее с теми же результатами, если все функции datepickers идентичны по функциональности:
<?php for ($i = 1; $i <= $_SESSION["number"]; $i++) { ?> Time <input type='text' name='timepicker[<?= $i ?>]' class="datepicker_dynamic" id='timepicker[<?= $i ?>]' value=''/> <?php } ?>
И используйте следующие JS:
<script type='text/javascript'> $(document).ready(function() { $('.datepicker_dynamic').timepicker({ showLeadingZero: false, }); }); </script>
Изменить: В конце концов, проблема оказалась неправильным использованием открытого тега PHP <?
, Добавление небольшого объяснения здесь для дальнейшего использования:
<?php ?>
: теги открытия и закрытия php по умолчанию, всегда включаемые по умолчанию <? ?>
<? ?>
: Короткий открытый тег php. Это может быть отключено по умолчанию, поэтому проверьте свои настройки PHP и включите это, прежде чем использовать его. <?= ?>
: сокращение для <?php echo ?>
. Опять же, по умолчанию может быть отключено, поэтому перед использованием используйте свои настройки PHP и включите. Чтобы включить короткие открытые теги, проверьте свой файл PHP.ini для short_open_tag