0

私は動的にページを構築しています。このページは入力タグから情報を読み取る必要がありますが、動的です。私が見ているので、配列になるように設定する必要があります

データセットを保存したい。

<script>
   function adjustPilots(){
var pilots = $("#numPilots").val();
var info = '<td><table>'+
    '<tr><td>Minumum Collateral</td><td colspan="2"><input type = "text" size = "10" maxLength = "6" /> to <input type = "text" size = "10" maxLength = "6" /></td></tr>'+
    '<tr><td>Reward</td><td colspan="2"><input type = "text" size = "10" maxLength = "6" /> to <input type = "text" size = "10" maxLength = "6" /></td></tr>'+
    '<tr><td>Volume</td><td colspan="2"><input type = "text" size = "10" maxLength = "7" /> to <input type = "text" size = "10" maxLength = "7" /></td></tr>'+
    '<tr><td>Start: </td><td><input type = "text" name = "s" id = "s" class = "s" value autocomplete = "off"></td></tr>'+
    '<tr><td>End: </td><td><input type = "text" name = "e" id = "e" class = "e" value autocomplete = "off"></td></tr>'+
    '</table></td>';


for(var i = 0; i < Number(pilots); i++){
    $("#pilotrow").append(info);
}
}
</script>
<body>
<form>
<table>
<tr><td>Number of Pilots</td><td colspan="2"><input id = "numPilots" type = "text" size="3" maxLength="3" onchange = 'adjustPilots()' /></td></tr>
<tr id = "pilotrow"></tr>

<tr><td><input type = "submit" name = "submit"></td></tr>
</table>
</form>
</body>

私が考えていたオプションは、フォームを使用せず、JavaScriptでビルドすることでした。次に、JSONオブジェクトを作成し、AJAXを使用してサーバーに送信します。それは確かな方法ですか、それとももっと良いアイデアがありますか?

4

3 に答える 3

3

それを行うには少なくとも2つの方法があります。

javascriptを使用しない場合は、次のような要素の配列を使用してフォームを分類します

<input type="text" name="input[]"/>
<input type="text" name="input[]"/>
<input type="text" name="input[]"/>
<input type="text" name="input[]"/>

PHPで

$inputs = $_POST['input'];
for($inputs as $inp){

}

ajaxとjqueryを使用すると、フォームをシリアル化してバックエンドに投稿するだけです。

于 2012-08-22T01:30:14.920 に答える
2

name入力で属性を使用することで、これを実現できます。そのようです:

<input type="text" name="pilots[]" />

次に、インデックス付き配列を送信できるように、追加するパイロットの数を追跡することをお勧めします。そのようです:

<input type="text" name="pilots[0][minumumCollatural]" />
<input type="text" name="pilots[0][reward]" />
<input type="text" name="pilots[0][volume]" />

そうすれば、フォームをサーバーに送信すると、パイロットの配列は次のようになります。

$pilots = $_POST['pilots'];

// Which looks like
array(
   [0] => array
          (
             [minumumCollatural] => // Some number
             [reward] => // Some number
          )
    [1] => array
          (
             [minumumCollatural] => // Some number
             [reward] => // Some number
          )
)
于 2012-08-22T01:41:11.533 に答える
0

非表示の入力タグを利用して、好きな方法でデータを送信してみてください。例えば:

<input type="hidden" name="myinput" id="myinput" />

現在JSで:

$("form").submit(function() {
    $("input").not("#myinput").each(function() {
        $("#myinput").val($("#myinput").val()+$(this).val());
        // you can format anyway you want this is just an example
    });
});

お役に立てれば!

于 2012-08-22T01:38:24.027 に答える