by
KK » Tue Oct 28, 2014 4:19 am
@slink
Curiously, you are using 'flash_variables' to select one of three forms present on the same page.
Please recall that a flash_variable is available for only a single page refresh.
So, suppose you select 'create', set this selection in flash and redirect, the refresh shows the 'create' form as expected.
Now you try to create a page by submitting this form. The page refreshes but
the flash variable denoting 'create' is now gone - so we don't land back on the form we submitted.
Hope can see what was happening. Same thing happens for 'edit' too (hence the error about missing page_id)
Now while I have my reservations on using such convoluted code, since I have been presented with a problem, I'll just post the solution.
In the various forms, we need to set the relevant flash variables again so that upon submitting the forms we get back to from where we started.
Following is what was working for me (I'm using only a single bound field 'k_page_title' because my test template did not have all the regions defined in your template - but I'm sure that won't be a problem for you).
- Code: Select all
<cms:if k_logged_in >
<cms:set_flash name='active_edit' value='0' />
<!DOCTYPE HTML>
<html>
<head>
<cms:embed 'header.html' />
</head>
<body>
<div class="container-fluid">
<cms:embed 'staff_menu.html' />
<div class='row'>
<div class='col-md-3'>
<div class='panel panel-default' >
<div class='panel-heading' >
<h2>A Moment of Zen</h2>
</div>
<div class='panel-body' >
<script>
showQuotation();
</script>
</div>
</div>
</div>
<div class='col-md-9'>
<div class='panel panel-default'>
<div class='panel-heading'>
<h2>Book Club Worksheet</h2>
<cms:set edit_club_success="<cms:get_flash 'edit_club_success' />" />
<cms:set create_club_success="<cms:get_flash 'create_club_success' />" />
<cms:set option_select="<cms:get_flash 'option_select' />" />
<cms:set active_edit="<cms:get_flash 'active_edit' />" />
<cms:set active_club="<cms:get_flash 'active_club' />" />
<cms:if edit_club_success >
<h4>Your edit was successful.</h4>
<cms:else_if create_club_success />
<h4>You created a new book club!</h4>
</cms:if>
<cms:form name='task_selector' enctype='multipart/form-data' method='post' anchor='1'>
<label>Would you like to create a new book club or edit an existing book club?</label>
<cms:input type='radio' name='work_option' opt_values='Create | Edit ' />
<p/>
<button type='submit' class='btn btn-default'>Submit</button>
<p/>
<cms:if k_success>
<cms:if frm_work_option='Edit' >
<cms:set_flash name='option_select' value='2' />
<cms:else />
<cms:set_flash name='option_select' value='1' />
</cms:if>
<cms:redirect k_page_link />
</cms:if>
</cms:form>
<cms:if option_select='1' >
<cms:set_flash name='option_select' value='1' />
<cms:form
name='club_creator'
masterpage='book_clubs.php'
mode='create'
enctype="multipart/form-data"
method='post'
anchor='0'
>
<cms:if k_success>
<cms:db_persist_form
_invalidate_cache = '0'
_auto_title='1'
/>
<cms:set_flash name='create_club_success' value='1' />
<cms:redirect k_page_link />
<cms:else_if k_error />
<div class="error">
<cms:each k_error >
<br><cms:show item />
</cms:each>
</div>
</cms:if>
<label>Hosting Branch:</label>
<cms:input name='k_page_title' type='bound' />
<p/>
<button type='submit' class='btn btn-default' />Create Book Club</button>
</cms:form>
<cms:else_if option_select='2' />
<cms:set_flash name='option_select' value='2' />
<cms:if active_edit>
<cms:set_flash name='active_edit' value='1' />
<cms:set_flash name='active_club' value=active_club />
<cms:form
name='club_editor'
masterpage='book_clubs.php'
mode='edit'
page_id=active_club
enctype="multipart/form-data"
method='post'
anchor='0'
>
<cms:if k_success >
<cms:db_persist_form />
<cms:if k_success >
<cms:set_flash name='edit_club_success' value='1' />
<cms:redirect k_page_link />
</cms:if>
</cms:if>
<label>Next Book</label>
<cms:input name='k_page_title' type='bound' />
</p>
<p>If any other information needs to be updated, please submit it to the <a href="<cms:cloak_email 'slink@columbiacountyga.gov' />">systems librarian</a> for addition</p>
<button type='submit' class='btn btn-default'>Complete Edits</button>
</cms:form>
<cms:else />
<cms:form name='club_selector' enctype='multipart/form-data' method='post'>
<label>Choose the club to edit: </label>
<cms:input type='dropdown' name='edit_this_club' opt_values="<cms:pages masterpage='book_clubs.php' ><cms:if k_current_record=k_total_records ><cms:concat k_page_title '=' k_page_id /><cms:else /><cms:concat k_page_title '=' k_page_id ' | ' /></cms:if></cms:pages>" />
<p/>
<button type='submit' class='btn btn-default'>Select Club</button>
<cms:if k_success>
<cms:set_flash name='active_edit' value='1' />
<cms:set_flash name='active_club' value=frm_edit_this_club />
<cms:redirect k_page_link />
</cms:if>
</cms:form>
</cms:if>
</cms:if>
</div>
</div>
</div>
</div>
</div>
<cms:embed 'footer.html' />
</body>
</html>
<cms:else />
<cms:redirect k_site_link />
</cms:if>
Hope this helps.