0

ユーザーが「複製」ボタンを押したときに、入力フィールドの個々の ID を動的に生成およびインクリメントするセクションのフォームを作成しています。たとえば、名前用に作成された入力フィールドの ID は「firstname1」であり、複製すると「firstname2」などになります。

私の問題は、私が構築しようとしているphpの「確認」ページにあります。大量のエコーをハードコーディングせずに、生成および入力されたすべての入力フィールドをエコーアウトしたい。個々の変数名の代わりに配列を使用するように言われました-概念はある程度理解していますが、不十分です。

すべての新しい入力の値をキャプチャする配列を作成しようとしたので、配列を $_POST し、各値をループしてエコーすることができますが、何を変更する必要があり、どこに実装する必要があるのか​​ よくわかりません。

次のコードは、コンテナの div 全体と入力フィールドを複製し、クラス番号をインクリメントします。

$(#replicate').click(function(){
  var $cloned = $('.container1').clone();
  $cloned.find('input').val('');
  $cloned.appendTo($('.emptyContainer'));
  var container = $(".emptyContainer div").length;
  var containerNumber = container + 1;
  var containerClass = 'container' + containerNumber; 
  $(".emptyContainer .container1").attr("class", containerClass);

次に、入力 ID が同じ方法で増加します。

var fnameID = 'firstname' + containerNumber;
$('.emptyContainer #firstname1').attr({id: fnameID, name: fnameID});

姓、電話番号、電子メールなどを含む入力がさらにあります。

別のユーザーが提案しました:

foreach($_POST as $fieldName=>$fieldValue){
  echo $fieldName." = ".$fieldValue."<br/>";
}

これで php ページにすべてが表示されましたが、すべてが 1 つの大きなブロックにまとめられていたため、後のスタイリングが少し面倒でした。

新しい入力ごとに入力値を取得し、それらを配列に保存し、ユーザーが送信を押したときに関連するすべての情報が関連する領域にとどまるように、それらをphp側に投稿するにはどうすればよいですか?

4

1 に答える 1

0

この方法は、動的行の場合に最適に機能するため、次の方法を試すことができます。

プロジェクトから直接貼り付けたため、コードはあまり読みにくいですが、それでも役立つことを願っています

$('.add-option').live('click',function(){

        if(rowCtr < ucount){
            var tr = '<tr class="input-'+counter+'"><td><select id="itb_users" class="itb_users" name="project[itb_users]['+counter+']" >'
                tr +=     '<option value=0>Select</option>'
                          <?php foreach ($itb_users as $item){ ?>
                tr +=             '<option grade="<?php echo $item->grade; ?>" value="<?php echo $item->id; ?>"><?php echo $item->first_name; ?></option>';  
                         <?php } ?>
                tr +=   '</select>'
                tr += '</td>'
                tr +=   '<td>&nbsp;</td>'
                tr +=   '<td><input class="_hour" id="project[input-hour]['+counter+']" name="hours['+counter+']" type="text" class="field" style="width:30px"/></td>'
                tr +=   '<td><img class="add-option" src="'+'<?php img_src('add.png'); ?>'+'" />&nbsp;&nbsp;<img class="remove-option" src="'+'<?php img_src('remove.png'); ?>'+'" /></td>'
                tr +=   '</tr>';
                counter++;
                rowCtr++;
     .......

php を送信すると、関連するレコードを含む変数プロジェクトを受け取ります。

于 2013-06-10T13:37:21.223 に答える