php - 读取/提交具有可变长度字段集的表单,作为数组服务器端读取

标签 php html arrays forms

我正在创建一个 html 表单,允许用户指定要提交的可变长度字段(通过 javascript 在客户端添加/删除字段)。

我希望能够将这些提交作为二维数组服务器端来处理,例如:

array(
    array(
        'venue_name' = 'venue 1',
        'venue_description' => 'nighlife',
        'venue_street_address' => '111 fake street'
        ....
    ),
    array(
        'venue_name' ...
    )
);

enter image description here

这是我正在使用的表单 HTML:

<form>
    <div style="border:1px solid white;">
        <label>Venue Name:</label><br><input name="venue_name[]" type="text" /><br>
        <label>Description:</label><br><input name="venue_desc[]" type="text" /><br>
        <label>Street Address:</label><br><input name="venue_street_address[]" type="text" /><br>
        <label>City:</label><br><input name="venue_city[]" type="text" /><br>
        <label>State:</label><br><input name="venue_state[]" type="text" /><br>
        <label>Zip:</label><br><input name="venue_zip[]" type="text" /><br>
    </div>
    <div style="border:1px solid white;">
        <label>Venue Name:</label><br><input name="venue_name[]" type="text" /><br>
        <label>Description:</label><br><input name="venue_desc[]" type="text" /><br>
        <label>Street Address:</label><br><input name="venue_street_address[]" type="text" /><br>
        <label>City:</label><br><input name="venue_city[]" type="text" /><br>
        <label>State:</label><br><input name="venue_state[]" type="text" /><br>
        <label>Zip:</label><br><input name="venue_zip[]" type="text" /><br>
    </div>
</form>

我使用 jQuery 的 .serialize() 函数通过 ajax 将表单提交到我的服务器,它是这样到达的:

team_name=team+wild&venue;_name[]=venue+1&venue;_desc[]=nighlife&venue;_street_address[]=111+Fake+Street&venue;_city[]=Boston&venue;_state[]=MA&venue;_zip[]=02115&venue;_name[]=venue+2&venue;_desc[]=desc&venue;_street_address[]=115+rake+street&venue;_city[]=Boston&venue;_state[]=MA&venue;_zip[]=03030

我该如何将这个提交字符串转换为我正在寻找的格式的数组,这是处理这种情况的最佳方式吗? (可变长度的表单字段集)

编辑 1

jQuery.ajax({
            url: window.location,
            type: 'post',
            data: {
                    'vc_method': 'step_submit',
                    'fan_page_id': jQuery('#fan_page_id').html(),
                    'submit_data': jQuery(main_holder_body).find('form#setup_form').serialize()
                  },
            cache: false,
            dataType: 'json',
            success: function(data, textStatus, jqXHR){

                console.log(data);

            }
        });

最佳答案

你可以尝试做的是:

第一个 field :

name="data[0][venue_name]"

第二个 field :

name="data[1][venue_name]"

编辑: 试试这个:

var data = {};
        data.submit_data = jQuery(main_holder_body).find('form#setup_form').serializeArray();
        data.vc_method = 'step_submit';
        data.fan_page_id = jQuery('#fan_page_id').html();
        data.fan_page_id = jQuery('#fan_page_id').html();
        jQuery.ajax({
            url: window.location,
            type: 'POST',
            data: data,
            cache: false,
            dataType: 'json',
            success: function(data, textStatus, jqXHR){

                console.log(data);

            }
        });

关于php - 读取/提交具有可变长度字段集的表单,作为数组服务器端读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8272817/

相关文章:

php - 定位类别 css

php - Facebook PHP API - 页面上的帖子只显示给我,而不是公众

javascript - 添加不同的ID到2个不同的Bootstrap模式背景

arrays - 在 swift 中初始化 json api 后出现错误

php - 将多条记录插入连接表

php - (MySQL/PHP) 使用 PHP 将数据插入 MySQL 表

javascript - jquery 的问题

javascript - HTML5 视频上一个 - 下一个和自动播放

javascript - 将 javascript 数组从多维转换为关联

javascript - 如何按照一定的规则设置数组的元素