动态添加新字段后提交表单


Form submission after dynamically adding new fields

我有一个表格,例如

HTML

<form id="data">
  <input id="hostname" type="text" name="hostname" value="" />
</form>

我有一些javascript,它为我的朋友数量添加了更多的字段。

注意:为了节省写作时间,我将避免添加一些fbapi脚本。如果你想让我重新编辑并添加,请添加评论。

JAVASCRIPT

<script>
//load fb api
//authenticate with permissions {scope: email,friends_birthday,users_birthday}
FB.api('/me/friends?fields=id,name,birthday',function (friendsdata) {
   for (var i = 0; i < friendsdata.data.length; i++) {

      $('#hostname').after('<input type="text" name="hostid[]" value="'+friendsdata.data[i].id+'" />');
    }
    $.ajax({
      type: "GET",
      url: "php/send.php",
      data: $("#data").serializeArray(),
      success: function(send) {
      console.log(send);
      }
    });
  })      


</script>

PHP

$hostid = $_GET['hostid'];
print_r($hostid); // returns nothing if input field is generated using jquery after

上面的工作非常好。它检索数据并插入到字段中。但问题是,当我试图使用序列化数组通过ajax将这些数据发布到php文件时。

由于输入字段的动态生成,我无法在php中接收id数组。

如果我只是手动添加id字段,它就可以正常工作。

有什么建议或解决方案吗?

编辑

Arun请求的Ajax保存方法。

谨致问候,道尔顿。

而不是-

data: $("#data").serializeArray(),

使用此-

data: { hostid: $("#data").serializeArray()},

而不是使用

data: $("#data").serializeArray()

你可以获得类似的数据

// which will return a array.
var result  = $("input[name=hostid]").val();
// you can then serialize that array and pass to php
data:result.serializeArray()enter code here