Чтение / отправка формы с наборами полей переменной длины, которые считываются массивом на стороне сервера - PullRequest
3 голосов
/ 25 ноября 2011

Я создаю 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>

Я использую функцию .serialize () jQuery для отправки формы на мой сервер через 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);

            }
        });

Ответы [ 2 ]

2 голосов
/ 25 ноября 2011

что вы можете попытаться сделать:

для первого места:

name="data[0][venue_name]"

для второго места:

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);

            }
        });
0 голосов
/ 25 ноября 2011

Я думаю, что вы на правильном пути.

Просто опубликуйте эти переменные как список флажков.

Посмотрите на https://stackoverflow.com/q/1557315/976948.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...