Я сделал некоторую перекройку в код:
<?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 } ?>
Опять же, я согласен с @ Брэдом, что это, вероятно, хорошая идея, чтобы не генерировать такое количество 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>
Edit: В конце концов, проблема закончилась тем, что неправильное использование в PHP с открытым тегом <?
. Добавление небольшого объяснения здесь в будущем:
<?php ?>
: по умолчанию PHP Открытие и закрытие тегов, всегда включен по умолчанию
<? ?>
: РНР короткой открытой метки. Это может быть отключено по умолчанию, поэтому проверьте свои настройки PHP и включите это, прежде чем использовать его.
<?= ?>
: стенограмма для <?php echo ?>
. Опять же, по умолчанию может быть отключено, поэтому перед использованием используйте свои настройки PHP и включите.
Чтобы включить короткие открытые теги, проверьте файл php.ini для short_open_tag
Сделать это легко на себя. Не выводить JavaScript с помощью PHP, за исключением случаев, когда вы назначаете данные. 'echo 'var i =', json_encode ($ i), ';'' (Если вы просто выполняете целые числа, вам не нужно 'json_encode()'. Я всегда использую его при помещении данных в JavaScript, наилучшая практика.) – Brad
Знаете, если вы выполняете ' php if [condition] {?>', он все равно будет работать и выглядеть намного чище: D – godfrzero