Совет - форма регистрации 3 радио кнопки

0

Таким образом, у меня есть форма, содержащая раздел, где пользователи должны выбирать, хотите ли они регистрироваться для сеанса, который будет проводиться 3 раза в день. Проблема заключается в том, что для любого заданного сеанса AM, Mid-day и PM могут подавать заявки только 5 претендентов. Итак, это соревнование, чтобы войти. Вот раздел формы.

Изображение 174551

Я не понимаю, как определить, закрыта ли регистрация для какой-либо сессии. То есть, если форма была заполнена, и 4 человека уже зарегистрированы для сеанса X. В то же время другой пользователь, зарегистрированный для X и этот сеанс, теперь закрыт. Первый пользователь может подумать, что он все еще может подать заявку, потому что его форма так говорит. Чтобы отключить сеанс, переключатель должен быть отключен как " Ужин на воскресенье 3 августа " на изображении ниже.

Я думал использовать jquery ajax для обновления через 10 секунд. но это еще одна проблема. Ответ отменит любые выборы, сделанные пользователем до сих пор. Это похоже на то, как Amazon управляет "оставшимися 5 предметами". Мне никогда не приходилось делать что-то подобное раньше. Я использую фреймворк codeigniter, jquery 1.8.2.

Есть идеи?

  • 0
    Если вы обновляете только радиокнопку, которую необходимо отключить, она должна стираться только в том случае, если пользователь попытался выбрать тот, который был взят за это время. Также на заметку, вы, вероятно, захотите добавить скрытый ввод при отключении, чтобы он все еще передавался.
Теги:
codeigniter
forms

1 ответ

0

Если это место не очень популярно, вы можете попытаться объяснить то, что никогда не произойдет (это нормально). Достаточно просто показать ошибку ("<дата> больше недоступна") и попросить их повторить попытку, если есть конфликт. Но, опрос также должен работать; просто отключите соответствующее радио, чтобы не сбросить всю форму. Псевдокод:

<input type="radio" class="reservation" name="1-1-2014-morning">
<input type="radio" class="reservation" name="1-1-2014-afternoon">
<input type="radio" class="reservation" name="1-1-2014-evening">

-

var reservations = $('.reservation');
$.ajax({
    type:'get',
    url: 'checkdates',
    success: function(response){
        if(response){
            $(reservations).each(function(){
                if($.inArray(this.name, response.dates)){
                    $(this).attr('disabled', true);
                }
            });
        }
    }
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню