2012-01-12 3 views
0

У меня есть форма, которую я использую для создания временных диапазонов в течение недели. Сейчас он выбирает день недели, время начала и время окончания. У меня есть javascript, добавляющий новую группу этой же формы, и каждый элемент имеет имя с массивом.Опубликовать несколько ящиков с несколькими выборами

<label>Day Of Week:</label> <select name="dow[]" multiple="multiple" size="5"><option value="sun">sun</option><option value="mon">mon</option><option value="tue">tue</option><option value="wed">wed</option><option value="thu">thu</option><option value="fri">fri</option><option value="sat">sat</option></select><br /> 
<label>Start Time</label> Hour: <select name="starthour[]"><option value="0">12 AM</option><option value="1">1 AM</option><option value="2">2 AM</option><option value="3">3 AM</option><option value="4">4 AM</option><option value="5">5 AM</option><option value="6">6 AM</option><option value="7">7 AM</option><option value="8">8 AM</option><option value="9">9 AM</option><option value="10">10 AM</option><option value="11">11 AM</option><option value="12">12 PM</option><option value="13">1 PM</option><option value="14">2 PM</option><option value="15">3 PM</option><option value="16">4 PM</option><option value="17">5 PM</option><option value="18">6 PM</option><option value="19">7 PM</option><option value="20">8 PM</option><option value="21">9 PM</option><option value="22">10 PM</option><option value="23">11 PM</option></select>Minute: <select name="startmin[]"><option value="0">0</option><option value="15">15</option><option value="30">30</option><option value="45">45</option></select> <br /> 
<label>End Time</label> Hour: <select name="endhour[]"><option value="0">12 AM</option><option value="1">1 AM</option><option value="2">2 AM</option><option value="3">3 AM</option><option value="4">4 AM</option><option value="5">5 AM</option><option value="6">6 AM</option><option value="7">7 AM</option><option value="8">8 AM</option><option value="9">9 AM</option><option value="10">10 AM</option><option value="11">11 AM</option><option value="12">12 PM</option><option value="13">1 PM</option><option value="14">2 PM</option><option value="15">3 PM</option><option value="16">4 PM</option><option value="17">5 PM</option><option value="18">6 PM</option><option value="19">7 PM</option><option value="20">8 PM</option><option value="21">9 PM</option><option value="22">10 PM</option><option value="23">11 PM</option></select>Minute: <select name="endmin[]"><option value="0">0</option><option value="15">15</option><option value="30">30</option><option value="45">45</option></select> <br /> 

Эта форма создается с помощью javascript для подачи множества правил. Все отлично работает в стороне от многоселекторных ящиков.

Если пользователь выбрал в правиле один mon и wed, а в правиле 2, выбранном tue, они объединяются в один и тот же массив в форме. Так свалка $ _POST будет показывать:

Array ([dow] => Array ([0] => mon [1] => wed [2] => tue) [starthour] => Array ([0] => 0 [1] => 15) [startmin] => Array ([0] => 0 [1] => 0) [endhour] => Array ([0] => 5 [1] => 17) [endmin] => Array ([0] => 0 [1] => 0) [do] => add [act] => scheduler [mod] => availability [avtype] => perm) 

У меня нет никакого способа определить, какое правило данных в Дау из. Я не верю, что делаю что-то внешне неправильно. В настоящее время единственное исправление, которое у меня есть, - это разрешить только один день. Однако часто бывает, что люди имеют одно и то же время в течение нескольких дней. Было бы неплохо включить эту функциональность, если это вообще возможно.

ответ

1

В вашем javascript уникально называются каждая форма с идентификатором - это будет работать, если существует несколько форм, но может и не быть лучшим решением.

Возможно, самое лучшее, что вам нужно сделать в создании формы javascript, добавить var i; name = i + "dow []" , чтобы вы могли идентифицировать отдельные элементы формы. Я не верю, что вы можете различать элементы формы в одной и той же форме с тем же именем, по крайней мере, не на почте. Вы можете прокручивать эти элементы с предварительным сообщением javascript и назначать уникальные идентификаторы в сообщении.

0

Я хотел бы сделать это так .. для каждого правила я получу временную метку и выберите элемент в генерируемой форме будет выглядеть следующим образом ..

select name="dow[timestamp][]" ...  

так что все ваше правило будет иметь уникальный массив в настоящее время.

вы можете получить временную метку со следующим кодом.

function microtime (get_as_float) 
{ 
    var now = new Date().getTime(); 
    return now; 
}