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

时间:2013-08-22 07:01:37

标签: javascript php jquery facebook facebook-javascript-sdk

我有一个例如。

的表格

HTML

<form id="data">

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

</form>

我有一些javascript可以为no添加更多字段。我有朋友。

注意:我会避免添加一些fb api脚本来节省我的写作时间。如果您希望我重新编辑并添加注释,请添加注释。

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中收到ids数组。

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

任何建议或解决方案?

EDITS

Arun请求的Ajax保存方法。

此致 道尔顿。

2 个答案:

答案 0 :(得分:1)

而不是 -

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

使用此 -

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

答案 1 :(得分:1)

而不是使用

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