Динамически создавать уникальный идентификатор для массива полей ввода, используя Javascript - PullRequest
1 голос
/ 31 марта 2011

У меня есть массив дат.Приведенный ниже код перебирает даты, чтобы распечатать даты с текстовыми полями.Я пытаюсь создать массив текстовых полей с уникальными идентификаторами.Затем передайте каждую дату с текстовым полем (значениями) массива в скрипт php.

Есть идеи?

  for (var i in dates) {
    var d = dates[i];

    if (d) { // sometimes the date is not actually selected, that's why we need to check.
        var length = 12;
        var str = i+d;
        var myUniqueTime = str.substring(0,length);
        myUniqueTime = myUniqueTime.replace(/^\s+|\s+$/g, '');


        times= ["<input type=\"text\" id=\""+i+"\" size=\"8\" name=\""+i+"\" onChange=\"changeTimeTo24Hrs()\" value=\""+i+"\" />", "<input type=\"text\" id=\"times\" size=\"8\" name=\"times\" value=\""+i+"\" />"];

      // OK, selected.  Fill an input field.  Or something.  Just for example,
      // we will display all selected dates in the element having the id "output".
      el.innerHTML += "I = " + i + "<br />" + times + "<br />" + d.print("%A, %Y %B %d") + " <font size='-1'>" + myUniqueTime + "</font><br /><BR />";

    }
  }

Ответы [ 2 ]

2 голосов
/ 31 марта 2011

Вы можете дать всем своим текстовым полям имя: name ="dateField[]" тогда на стороне PHP у вас будет массив dateFields в вашей $_POST переменной.

То есть после отправки формы ваша $_POST['dateField'] будет выглядеть так: $_POST['dateField'] = array('date 1...', 'date 2...', 'date 3...');

EDIT:

Если у вас есть форма:

<form method="post" action="formHandler.php">
  <input type="text" name="dateField[]" value="some date"/>
  <input type="text" name="dateField[]" value="some other date"/>
</form>

И вы отправляете эту форму, тогда будет вызван php-файл formHandler.php (указанный в action = "formHandler.php"). В formHandler.php вы можете работать с датами, которые были отправлены.

formHandler.php:

echo 'First date: ' . $_POST['dateField'][0];
echo 'Second date: ' . $_POST['dateField'][1];
0 голосов
/ 31 марта 2011
for(var i = 0; i < dates.length; i++){
  textbox = document.createElement('input');
  textbox.type = 'text';
  textbox.id   = i;
  el.appendChild(textbox);
}

Вы должны добавить в закладки w3schools.com для API javascript.Об этом легко сослаться, а не задавать вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...