【问题标题】:Dynamically create unique ID for an array of input fields using Javascript使用 Javascript 为一组输入字段动态创建唯一 ID
【发布时间】:2011-03-30 23:05:38
【问题描述】:

我有一个日期数组。 下面的代码循环遍历日期以打印出带有文本字段的日期。 我要做的是创建一个具有唯一 ID 的文本字段数组。 然后将每个日期及其数组文本字段(值)传递到 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 />";

    }
  }

【问题讨论】:

    标签: php javascript jquery arrays loops


    【解决方案1】:

    您可以为所有文本字段命名:name ="dateField[]" 然后在 PHP 端,您的 $_POST 变量中将有一个 dateFields 数组。

    提交表单后,您的$_POST['dateField'] 将如下所示:$_POST['dateField'] = array('date 1...', 'date 2...', 'date 3...');

    编辑:

    如果你有表格:

    <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];
    

    【讨论】:

    • 好的,如果我想使用 javascript 添加一个新的文本字段;有什么想法吗?
    • 哦,我如何从 JAVASCRIPT 发布它?
    • 我已经尝试了所有方法,现在仍然可以正常工作。您能否编辑我的代码,以便我知道将 PHP 帖子放在哪里。我真的很难做到这一点。
    • 嗨姆劳。谢谢你的帮助。我有点放弃。它不工作。问题是日期是在没有表单的情况下动态检索的 - 所以我在输出中放置了一个文本字段。我真的不能让java脚本发布结果。再次感谢您的帮助。我对 php 和 javascript 有点陌生。
    【解决方案2】:
    for(var i = 0; i < dates.length; i++){
      textbox = document.createElement('input');
      textbox.type = 'text';
      textbox.id   = i;
      el.appendChild(textbox);
    }
    

    您应该将 w3schools.com 加入书签以获取 javascript api。这是一件很容易参考的事情,而不是必须提出问题。

    【讨论】:

    • 任何想法如何将日期数组和文本字段数组传递到 php 中?我已经尝试了一切,但没有奏效。所以应该是这样的:date1 [value1, value2, value3]; date2 [value1, value2]
    猜你喜欢
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    • 2022-08-04
    • 1970-01-01
    • 2011-11-06
    • 2016-05-07
    • 2015-04-09
    相关资源
    最近更新 更多