使用Javascript向PHP脚本发送具有相同名称的表单字段时遇到问题

时间:2014-08-14 19:20:56

标签: javascript php

我有一个带有简单输入字段的表单,我有一个按钮,允许我通过javascript使用相同的名称添加另一个输入字段(例如:name =" list []") 。当我点击“添加'按钮输入多个电子邮件地址,它动态添加新的输入字段,但我遇到的问题是,当我将其发送到PHP脚本时,脚本只返回第一封电子邮件,而不是其他电子邮件。我有什么想法可能做错了吗?

-javascript under -

function preparePage() {
  var addEmail = document.getElementById("add_email");
  var putEmail = document.getElementById("put_email");

  addEmail.onclick = function() {
    putEmail.innerHTML += '<input type="text" name="names_list[]"><br />';
    };
 }

window.onload =  function() {
  preparePage();
};

下面的-html -

  <form action="email_names.php" method="post">
    <div id="put_email">
      <input type="text" name="names_list[]"><br />
    </div>

    <div>
      <div id="add_email"> + </div>

      <input id="email_btn" type="submit" name="email_submit" value="E-mail List">
    </div>
  </form>

下面的-php脚本 -

  if(isset($_POST['email_submit'])) {
    $names_list = $_POST['names_list'];

    echo '<pre>';
    print_r($names_list);
    echo '<pre>';
}

//This returns 
Array
(
  [0] => test@email1.com
)
// instead of
Array
(
  [0] => test@email1.com
  [1] => test@email2.com
  [2] => test@email3.com
)

1 个答案:

答案 0 :(得分:2)

<击>错别字?

<击>
putEmail.innerHTML += '<input type="text" name="name_list[]"   snip....
                                                ^^^^-- singular name: no "s"



  <input type="text" name="names_list[]"><br />
                           ^^^^^---plural names. WITH "s"

执行var_dump($_POST)会确认这一点。


现在我看到OP已经做了一个忍者编辑并修复了这个问题,所以猜不是......