Forum Moderators: open
So here is the problem.
I have a dropdown box that has 3+ entries in it. The dropdown box is populated via a foreach statement in PHP via the query before it.
Now with each item in the dropdown box, a new page of results of displayed. For each column of the new page of results, the column headers are clickable to sort the column information. However, whenever one of the column headers is clicked, the dropdown box resets and it automatically goes back to the first option/set of results.
How can I keep it from doing this? I just want it to stay on the current page that the user is on.
TPL File (Smarty Code)
<form name="action" name="form" method="POST" action="" style="margin:0px; padding-bottom: 5px;">
<table style="width: 100%;" border="0">
<tr>
<td align="right" >
Search By Conference:
<select onchange="this.form.submit();" name="event">
{foreach from=$conferencesDisplay item=conference}
{if $event_tag eq $conference.id}
<option selected value="{$conference.id}">{$conference.conference_name}</option>
{else}
<option value="{$conference.id}">{$conference.conference_name}</option>
{/if}
{/foreach}
</select>
</td>
</tr>
</table>
</form>
<table class="currentevents_table" style= "width:100%;">
<tr>
<td colspan="9" align="center"><div class="tcat" style="padding: 4px; text-align: center;">
<b>Current Proceedings</b>
</div></td>
</tr>
<tr>
<td class="currentevents_th" width="10%"><u>
{if $sort eq 'sessionid_desc'}<a href="?sort=sessionid_asc&{$event_tag}">Session ID</a>{else}<a href="?sort=sessionid_desc&{$event_tag}">Session ID</a>{/if}
</td></u>
<td class="currentevents_th" width="15%"><u>
{if $sort eq 'conferenceid_desc' ¦¦ $sort eq ''}<a href="?sort=conferenceid_asc&{$event_tag}">Conference{else}<a href="?sort=avg_desc&{$event_tag}">Conference</a>{/if}
</td></u>
<td class="currentevents_th" width="26%"><u>
{if $sort eq 'sessiontitle_desc'}<a href="?sort=sessiontitle_asc&{$event_tag}">Session Title{else}<a href="?sort=sessiontitle_desc&{$event_tag}">Session Title</a>{/if}
</td></u>
<td class="currentevents_th" width="10%"><u>
{if $sort eq 'sessionformat_desc'}<a href="?sort=sessionformat_asc&{$event_tag}">Session Format{else}<a href="?sort=sessionformat_desc&{$event_tag}">Session Format</a>{/if}
</td></u>
<td class="currentevents_th" width="9%"><u>
{if $sort eq 'sessiontype_desc'}<a href="?sort=sessiontype_asc&{$event_tag}">Session Type{else}<a href="?sort=sessiontype_desc&{$event_tag}">Session Type</a>{/if}
</td></u>
<td class="currentevents_th" width="10%"><u>
{if $sort eq 'speakername_desc'}<a href="?sort=speakername_asc&{$event_tag}">Speaker Name{else}<a href="?sort=speakername_desc&{$event_tag}">Speaker Name</a>{/if}
</td></u>
<td class="currentevents_th" width="10%"><u>
{if $sort eq 'speakercompany_desc'}<a href="?sort=speakercompany_asc&{$event_tag}">Speaker Company{else}<a href="?sort=speakercompany_desc&{$event_tag}">Speaker Company</a>{/if}
</td></u>
<td class="currentevents_th" width="10%"> </td>
</tr>
{if $proceedingDisplay neq '' && $error_message == false}
{foreach from=$proceedingDisplay item=proceeding}
{get_type_name assign=type_name type_id=$proceeding.type}
{if $proceeding.file_name eq ''}
<tr>
<td class="currentevents_td_red" align="center">{if $proceeding.session_id eq ''} {else}{$proceeding.session_id}{/if}</td>
<td class="currentevents_td_red" align="center">{if $proceeding.conference_name eq ''} {else}{$proceeding.conference_name}{/if}</td>
<td class="currentevents_td_red" align="center">{if $proceeding.title eq ''} {else}{$proceeding.title}{/if}</td>
<td class="currentevents_td_red" align="center">{if $proceeding.format eq ''} {else}{$proceeding.format}{/if}</td>
<td class="currentevents_td_red" align="center">{$type_name}</td>
<!--<td class="currentevents_td_red">{if $proceeding.overview eq ''} {else}{$proceeding.overview}{/if}</td> -->
<td class="currentevents_td_red" align="center">{if $proceeding.first_name eq '' && $proceeding.last_name eq ''} {else}{$proceeding.first_name} {$proceeding.last_name}{/if}</td>
<td class="currentevents_td_red" align="center">{if $proceeding.company eq ''} {else}{$proceeding.company}{/if}</td>
<td class="currentevents_td" align="center">
<a href="/vault/admin/content/current_proceedings.php?action=add" target="main" border="none" >
<img src="/vault/admin/images/add.png" alt="Add" border="0"/></a>
<a onclick="return confirm('Attention: By clicking ok, you will delete this vault session record. There will be no way to restore this data once deleted.');"
href="/vault/admin/content/current_proceedings.php?action=delete&entry_id={$proceeding.entry_id}&speaker_id={$proceeding.speaker_id}&session_speaker_id={$proceeding.session_speaker_id}"
target="main"><img src="/vault/admin/images/delete.png" alt="Delete" border="0"/></a>
<a href="/vault/admin/content/current_proceedings.php?action=edit&entry_id={$proceeding.entry_id}&speaker_id={$proceeding.speaker_id}&session_speaker_id={$proceeding.session_speaker_id}"
target="main"><img src="/vault/admin/images/edit.png" alt="Edit" border="0"/></a>
</td>
</tr>
{else}
<tr>
<td class="currentevents_td" align="center">{if $proceeding.session_id eq ''} {else}{$proceeding.session_id}{/if}</td>
<td class="currentevents_td" align="center">{if $proceeding.conference_name eq ''} {else}{$proceeding.conference_name}{/if}</td>
<td class="currentevents_td" align="center">{if $proceeding.title eq ''} {else}{$proceeding.title}{/if}</td>
<td class="currentevents_td" align="center">{if $proceeding.format eq ''} {else}{$proceeding.format}{/if}</td>
<td class="currentevents_td" align="center">{$type_name}</td>
<!--<td class="currentevents_td">{if $proceeding.overview eq ''} {else}{$proceeding.overview}{/if}</td>-->
<td class="currentevents_td" align="center">{if $proceeding.first_name eq '' && $proceeding.last_name eq ''} {else}{$proceeding.first_name} {$proceeding.last_name}{/if}</td>
<td class="currentevents_td" align="center">{if $proceeding.company eq ''} {else}{$proceeding.company}{/if}</td>
<td class="currentevents_td" align="center">
<a href="/vault/admin/content/current_proceedings.php?action=add" target="main" border="none" >
<img src="/vault/admin/images/add.png" alt="Add" border="0"/></a>
<a onclick="return confirm('Attention: By clicking ok, you will delete this vault session record. There will be no way to restore this data once deleted.');"
href="/vault/admin/content/current_proceedings.php?action=delete&entry_id={$proceeding.entry_id}&speaker_id={$proceeding.speaker_id}&session_speaker_id={$proceeding.session_speaker_id}"
target="main"><img src="/vault/admin/images/delete.png" alt="Delete" border="0"/></a>
<a href="/vault/admin/content/current_proceedings.php?action=edit&entry_id={$proceeding.entry_id}&speaker_id={$proceeding.speaker_id}&session_speaker_id={$proceeding.session_speaker_id}"
target="main"><img src="/vault/admin/images/edit.png" alt="Edit" border="0"/></a>
</td>
</tr>
{/if}
{/foreach}
{elseif $error_message == true}
<tr>
<td colspan="9" align="center">
<br />
<b>No records could be found that match your search conditions.</b><br />
</td>
</tr>
{/if}
</table> PHP Code:
//If $_GET['sort'] has a value, then that value is matched up
//against the different cases.
switch($_GET['sort']) {
case "sessionid_desc":
$sort = "vault_sessions.session_id DESC";
break;
case "sessionid_asc":
$sort = "vault_sessions.session_id ASC";
break;
case "conferenceid_desc":
$sort = "vault_sessions.conference DESC";
break;
case "conferenceid_asc":
$sort = "vault_sessions.conference ASC";
break;
case "sessiontitle_desc":
$sort = "vault_sessions.title DESC";
break;
case "sessiontitle_asc":
$sort = "vault_sessions.title ASC";
break;
case "sessionformat_desc":
$sort = "vault_sessions.format DESC";
break;
case "sessionformat_asc":
$sort = "vault_sessions.format ASC";
break;
case "sessiontype_asc":
$sort = "vault_sessions.type ASC";
break;
case "sessiontype_desc":
$sort = "vault_sessions.type DESC";
break;
case "speakername_asc":
$sort = "vault_speakers.last_name ASC";
break;
case "speakername_desc":
$sort = "vault_speakers.last_name DESC";
break;
case "speakercompany_asc":
$sort = "vault_speakers.company ASC";
break;
case "speakercompany_desc":
$sort = "vault_speakers.company DESC";
break;
default:
$sort = "vault_sessions.title ASC";
break;
}
// -----------------------------
// defining additional variables
// -----------------------------
if(isset($_REQUEST['event']))
{
$es_event = intval($_REQUEST['event']);
}
elseif($_GET['event_id'])
{
$es_event = intval($_GET['event_id']);
}
else
{
$es_event = 228;
}
// ---------------------------------------------
// database hit -- phpfox_conference
// ---------------------------------------------
$query = "SELECT id, conference_name FROM phpfox_conference";
$conferences = getDataAssoc($query) or die(mysql_error());
// ------------------------------------------------------------------------------------------
// database hit -- vault_sessions, vault_sessions, vault_sessions_speakers, phpfox_conference
// ------------------------------------------------------------------------------------------
$query = "SELECT vault_sessions_speakers.id AS session_speaker_id, vault_speakers.first_name, vault_speakers.last_name,
vault_speakers.company, vault_speakers.id AS speaker_id, vault_sessions.id AS entry_id,
vault_sessions.session_id AS session_id, vault_sessions.conference, vault_sessions.title,
vault_sessions.format, vault_sessions.type, vault_sessions.homepage,
vault_sessions.overview, vault_sessions.file_name, vault_sessions.ftp_url,
vault_sessions.http_url, vault_sessions.featured, vault_sessions.free, vault_sessions.image,
phpfox_conference.conference_name FROM vault_sessions
LEFT JOIN vault_sessions_speakers ON (vault_sessions.id=vault_sessions_speakers.session_id)
LEFT JOIN vault_speakers ON (vault_sessions_speakers.speaker_id=vault_speakers.id)
LEFT JOIN phpfox_conference ON (phpfox_conference.id = vault_sessions.conference)
WHERE vault_sessions.conference = '$es_event'";
$session_count = mysql_query($query) or die(mysql_error());
// ------------------------
// paging results -- part 1
// ------------------------
$numberOfResults=mysql_num_rows($session_count);
$limit = 10;
isset($_GET['page'])? $page = $_GET['page'] : $page = 1;
$numberOfPages=ceil($numberOfResults/$limit);
$offset = ($page - 1) * $limit;
// ------------------------------------------------------------------------------------------
// database hit -- vault_sessions, vault_sessions, vault_sessions_speakers, phpfox_conference
// ------------------------------------------------------------------------------------------
$query = "SELECT vault_sessions_speakers.id AS session_speaker_id, vault_speakers.first_name, vault_speakers.last_name,
vault_speakers.company, vault_speakers.id AS speaker_id, vault_sessions.id AS entry_id,
vault_sessions.session_id AS session_id, vault_sessions.conference, vault_sessions.title,
vault_sessions.format, vault_sessions.type, vault_sessions.homepage,
vault_sessions.overview, vault_sessions.file_name, vault_sessions.ftp_url,
vault_sessions.http_url, vault_sessions.featured, vault_sessions.free, vault_sessions.image,
phpfox_conference.conference_name FROM vault_sessions
LEFT JOIN vault_sessions_speakers ON (vault_sessions.id=vault_sessions_speakers.session_id)
LEFT JOIN vault_speakers ON (vault_sessions_speakers.speaker_id=vault_speakers.id)
LEFT JOIN phpfox_conference ON (phpfox_conference.id = vault_sessions.conference)
WHERE vault_sessions.conference = '$es_event'
ORDER BY $sort
LIMIT $offset, $limit";
if(getDataAssoc($query))
{
$rows = getDataAssoc($query) or die(mysql_error());
for($i=0; $i < count($rows); $i++)
{
// -----------------------------
// defining additional variables
// -----------------------------
$rows[$i]['overview'] = substrwords($rows[$i]['overview'], 400);
}
}
else
{
$error_message = true;
}
// -------------------------
// assign template variables
// -------------------------
$smarty->assign("conferencesDisplay", $conferences);
$smarty->assign("error_message", $error_message);
$smarty->assign("event_tag", $es_event);
$smarty->assign("proceedingDisplay", $rows);
$smarty->assign("getAction", $_GET['action']);
$smarty->assign("getSubmitAction", $_GET['submitaction']);
// ----------------
// display the page
// ----------------
$smarty->display('admin/content/current_proceedings.tpl');
$smarty->clear_all_assign();
Please let me know if you guys need any further information.
- Knucklehead
<form name="action" name="form" method="POST" action="" style="margin:0px; padding-bottom: 5px;">
<table style="width: 100%;" border="0">
<tr>
<td align="right" >
Search By Conference:
<select onchange="this.form.submit();" name="event">
{foreach from=$conferencesDisplay item=conference}
{if $event_tag eq $conference.id}
<option selected value="{$conference.id}">{$conference.conference_name}</option>
{else}
<option value="{$conference.id}">{$conference.conference_name}</option>
{/if}
{/foreach}
</select>
</td>
</tr>
</table>
</form> As you can see, the $event_tag is the hidden parameter that is being passed over. If it matches one of the conferences, then it should keep that as the selected option.
However, it does not do that.
Any idea what is going on with it?