0

I have a Channel with 4 custom fields which represent half hour timeslots (10-10.30, 10.30-11 etc) - the idea is that the field is populated with the logged in users name to marry them up for an appointment in the required slot. So far so good.

Each person can only choose ONE timeslot so when in an ChannelForm to add/edit/remove their name in the field I would like them to see a drop down where they can choose from the four timeslots (i.e. fields) and then submit (their name can be passed in a hidden field).

This is rather than have a Channel-Form template which actually shows the four fields...in effect it is forcing them to choose one and not allowing them to see the four empty fields...make sense?

Is it doable?

  • Just for sure - you want to make 1 entry = 1 day? And when user choose time period, his name is saved in this time period custom field and time period (and custom field) become unavailable for next users? – Max Lazar Jan 28 '14 at 12:30
  • Yes, that's basically it. Got most of it mailed down, just the drop down in Channel:Form which chooses which custom field (i.e. the time) the username goes into. – segovius Jan 28 '14 at 13:58
2

You can do this with JS - make select tag w/o name but with options to choose time (check using JS if custom field(hidden timeslot input) is empty or not. If not empty - add option to select list for this timeslot ). And dependent on what user choose - pre-fill hidden field. But risk of this methods - anybody who have knowledge about debugging page in browser can overwrite your exist data. If something happens with post data during submit - you also can lose your data. This is fundamental risks of method which you choosed.

From my point of view good way is to make 1 entry = 1 order (timeslots submit). You can keep data in specific field and look over this data to understand what timeslots is already booked. Base on information about exist order - dynamically make select list for time field.

For people who will works with data from site just need to make template where this data will display as part of one day.

I see other solutions, more protected, but it is most simple one.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.