dou448172583 2012-08-22 10:12
浏览 27
已采纳

如何在php中获取动态生成的输入字段的值?

I'm working on a form where I have 2 fields which can be added N number of times. I have 2 fields called "fieldA" and "fieldB" and a button called "addrow" . So as many times I click on addrow I add fieldA and fieldB beneath previous fieldA and fieldB. So I can have unlimited fieldAs and unlimited fieldBs. I use jquery to add rows and append new fields with number behind each field's name attr to make it unique. So first set of fields will be named as fieldA1, fieldB1 and second set will be named as fieldA2 , fieldB2 and so on.

This is how my part of my form looks

enter image description here

And here's my 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++;
    });
});

Now since these fields are generated automatically using jquery I'm not sure how to fetch field's value in php.

also after fetching field's values I would also like to create an array.

This is how I expect to save values of all my fields in php array.

$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"),
...
);
  • 写回答

2条回答 默认 最新

  • duanpuchun5275 2012-08-22 10:19
    关注

    You inputs must be array [], otherwise you will not be able to receive them as array fieldA[]

    Your jQuery should be like this:

    $(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 />
    

    and in your PHP you will receive them as

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

    you can convert them as you want

    $newArray = array();
    
    for($i=0; $i<count($_POST['fieldA']); $i++){
        $newArray[$i]['fieldA'] = $_POST['fieldA'][$i];
        $newArray[$i]['fieldB'] = $_POST['fieldB'][$i];
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥100 连续两帧图像高速减法
  • ¥15 组策略中的计算机配置策略无法下发
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写