Моя функция JavaScript работает отлично, но у меня проблемы с получением разных идентификаторов из поля ввода PHP.
window.onload = function() { new JsDatePick({ useMode:2, target:"inputField1", //HERE I WOULD LIKE TO PASS DIFFERENT ID ex. "inputField1"+ "i" dateFormat:"%Y-%M-%d", yearsRange:[1978,2120], limitToToday:false, cellColorScheme:"beige", imgPath:"main/img/", weekStartDay:1 });
<div class = "start_date" > <strong><label for="start_date">Start Date</label></strong> <br/><br/> <?php for($k=1;$k<=$textboxindex;$k++) { echo "<input type=\"text\" class='textboxsize' id= \"inputField1\" name=\"start_date[]\" value=\"$start_date\" />"; echo "<br/>"; } ?> </div>
Он работает отлично, но я хотел бы иметь разные идентификаторы имен для использования в функции JavaScript. Есть идеи?
Это не работает …
echo "<input type=\"text\" class='textboxsize' id= \"inputField+$k\" name=\"start_date[]\" value=\"$start_date\" />";
Любая помощь будет оценена.
Скорее всего, JsDatePick
виджет JsDatePick
. Его target
параметр принимает один идентификатор элемента, поэтому вам придется обернуть JS-код в цикле и инициировать отдельный экземпляр виджета для каждого идентификатора поля.
Предполагая, что индексирование поля ввода начинается с 1:
window.onload = function() { var i = <?=$totalNumberOfInputs;?> for(j=1;j<=i;j++) { new JsDatePick({ useMode:2, target:"inputField" + j, //HERE I WOULD LIKE TO PASS DIFFERENT ID ex. "inputField1" + j dateFormat:"%Y-%M-%d", yearsRange:[1978,2120], limitToToday:false, cellColorScheme:"beige", imgPath:"main/img/", weekStartDay:1 }); } }
Вам не нужно помещать знак + в конкатенацию строк в двойных кавычках (это точка, между прочим).
Изменить:
id= \"inputField+$k\" name=...
Для того, чтобы:
id=\"inputfield$k\" name=...
То, что это завинчивается, это знак «+». PHP использует "." для конкатенации строк. ECHO
из $k
правильно, и у вас не должно быть никаких проблем
//this is doesn't work echo "<input type=\"text\" class='textboxsize' id= \"inputField$k\" name=\"start_date[]\" value=\"$start_date\" />";
просто удалите этот знак +
.