0

私は例えばのためのフォームを持っています。

HTML

<form id="data">

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

</form>

そして、いいえにフィールドを追加するJavaScriptがいくつかあります。私が持っている友達の。

注: 執筆時間を節約するために、いくつかの fb API スクリプトを追加することは避けます。再編集して追加してほしい場合は、コメントを追加してください。

ジャバスクリプト

<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 フィールドを手動で追加するだけで問題なく動作します。

提案や解決策はありますか?

編集

Arun から要求された Ajax 保存メソッド。

よろしく、ダルトン。

4

2 に答える 2

1

それ以外の -

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

これを使って-

data: { hostid: $("#data").serializeArray()},
于 2013-08-22T07:22:36.107 に答える
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
于 2013-08-22T07:25:14.337 に答える