2013-08-22 37 views
0

我有一个表单,例如。动态添加新字段后提交表单

HTML

<form id="data"> 

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

</form> 

,我有一些JavaScript,增加了更多的领域为没有。我有朋友。

注:我将避免添加一些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字段,它工作正常。

任何建议或解决方案?

编辑

Ajax的保存方法通过阿伦的要求。

Regards, Dalton。

+1

显示你的ajax保存方法 –

+0

@ArunPJohny嗨Arun,我用ajax保存方法更新了这个问题 –

+0

请添加代码,在这里你发出这个ajax请求。 –

回答

1

相反的 -

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

使用这个 -

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

嘿,这个为我工作。但现在我得到一个新的错误,它说请求URL太大:jQuery的 –

+0

stackoverflow.com/questions/8542061/...可以帮助你。 PS。如果有帮助,不要忘记接受答案。干杯! –

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 
相关问题