I recommend reading the comments to the opening post for more details about the question. There are no "Channels" in this setup, only Freeform forms (forms were simply described as similar to "channels" in the opening post).
Summary
There are currently 2 Freeform forms:
- Theatres: Contains theatre information
- Admin: Contains other theatre and movie information
The Goal
A 3rd form is needed, called Booking, which contains data from the first 2 forms.
A Suggested Solution*
* As with most things EE, more than one solution is possible. This is only one possible strategy.
You can build this using {exp:freeform:form}
and {exp:freeform:entries}
. Let's say you have 3 fields in the Booking form set up to store data:
movie
theatre
: the field will be populated with entries from the Theatres form for the currently logged in user
no_of_prints
You could build the form this way (this is just an example):
{exp:freeform:form form_name="booking" /* your other parameters here */}
{!-- The movie --}
{exp:freeform:entries form_name="admin" search:movie_name="Snowpiercer"}
<input type="text" name="movie" value="{freeform:field:movie}" />
{/exp:freeform:entries}
{!-- The theatre --}
<select name="theatre">
<option>-- Select a theatre --</option>
{exp:freeform:entries form_name="theatres" author_id="CURRENT_USER"}
<option value="{freeform:field:theatre_name}">{freeform:field:theatre_name}</option>
{/exp:freeform:entries}
</select>
{!-- The Number of Prints/Screens --}
<input type="text" name="no_of_prints" placeholder="Eg. 50" />
<input type="submit" />
{/exp:freeform:form}
If you have custom fields with the same name across Freeform forms, you might run into issues where tags such as {freeform:field:movie}
get parsed as a field, since it's within {exp:freeform:form}
, when you really wanted a value, since it's also within {exp:freeform:entries}
. In that case, use embed templates to isolate the {exp:freeform:entries}
tag code.