1

N回追加できる2つのフィールドがあるフォームに取り組んでいます。「fieldA」と「fieldB」という 2 つのフィールドと、「addrow」というボタンがあります。したがって、何度も addrow をクリックすると、前の fieldA と fieldB の下に fieldA と fieldB が追加されます。したがって、無制限の fieldAs と無制限の fieldB を持つことができます。jquery を使用して行を追加し、各フィールドの名前 attr の後ろに番号を付けて新しいフィールドを追加して、一意にします。したがって、フィールドの最初のセットは fieldA1、fieldB1 という名前になり、2 番目のセットは fieldA2 、fieldB2 などの名前になります。

これは私のフォームの私の部分がどのように見えるかです

ここに画像の説明を入力

そして、ここに私のjqueryがあります

$(document).ready(function(){
 var $i = 1;
    $('body').on('click','#addrow',function(){
    $('#fieldset').append(
    "Your Friends Name: <br /><input type='text' name='fieldA"+$i+"' /><br /><br />Your Friends Email: <br /><input type='text' name='fieldB"+$i+"' /><br /><br />"
    );
    $i++;
    });
});

これらのフィールドは jquery を使用して自動的に生成されるため、php でフィールドの値を取得する方法がわかりません。

また、フィールドの値を取得した後、配列も作成したいと思います。

これは、すべてのフィールドの値をphp配列に保存する方法です。

$fieldset = array( 
array("fieldA" => "value of fieldA1","fieldB" => "value of fieldB1"),
array("fieldA" => "value of fieldA2","fieldB" => "value of fieldB2"),
array("fieldA" => "value of fieldA3","fieldB" => "value of fieldB3"),
...
);
4

2 に答える 2

4

入力は array[]でなければなりません。そうしないと、配列として受け取ることができませんfieldA[]

jQuery は次のようになります。

$(document).ready(function(){
 var $i = 1;
    $('body').on('click','#addrow',function(){
    $('#fieldset').append(
    "Your Friends Name: <br /><input type='text' name='fieldA["+$i+"]' /><br /><br />Your Friends Email: <br /><input type='text' name='fieldB["+$i+"]' /><br /><br />"
    );
    $i++;
    });
});

HTML

Your Friends Name: <br /><input type='text' name='fieldA[0]'  class='name'/><br /><br />
Your Friends Email: <br /><input type='text' name='fieldB[0]' class='email'/><br /><br />

そしてあなたのPHPでは、それらを次のように受け取ります

[fieldA] => Array (
                [0] => 
                [1] => 
                [2] => 
            )
[fieldB] => Array ( 
                [0] => 
                [1] => 
                [2] =>
            )

必要に応じて変換できます

$newArray = array();

for($i=0; $i<count($_POST['fieldA']); $i++){
    $newArray[$i]['fieldA'] = $_POST['fieldA'][$i];
    $newArray[$i]['fieldB'] = $_POST['fieldB'][$i];
}
于 2012-08-22T10:19:42.130 に答える
0

フォームでこれらのフィールドを送信するために POST を使用している場合は、次のことができます。

foreach ($_POST as $key => $value) {
    $fieldset[$key] => $value;
}
于 2012-08-22T10:15:28.527 に答える