Thanks Lee for the idea.
Only problem is your idea would be the progressive enhancement that
would be made - always want to have the application work without any
JavaScript.
I was looking for a pointer on good old clickable links with full page
reload.
Ady
On 09/01/2009, at 19:30 , Lee Bolding wrote:
>
> There's a JQuery table sorter on the JQuery site that will do your
> first 2 requirements.
>
> Not sure about the 3rd requirement, you may have to modify it yourself
> to achieve that.
>
> On 9 Jan 2009, at 09:25, Adrian Gould wrote:
>
>>
>> Hi everyone
>>
>> I have been trying to work out how to create a sortable table without
>> AJAX [looking at progressive enhancement] as a first stage of a small
>> application I am writing as practice for teaching next semester.
>>
>> Scenario:
>> The UNIT entity: unit(id, name, state_code, national_code) contains
>> data about units of study that are available to students.
>> I have successfully used the sfPropelPager to create a paginated
>> table
>> of the results in an unsorted manner.
>>
>> Problems:
>>
>> Task 1) I wish to implement clickable headers that allow the user to
>> decide upon which column to sort by.
>> Task 2) Clicking a header twice reverses the sort
>> Task 3) Clicking a header three times cancels the sorting direction
>> and thus returns the data to the entered data order [unsorted]
>>
>>
>> Anyone give me the hints to help implement this?
>>
>> Thanks
>>
>> Ady
>> -------------------------------
>>
>> In the /apps/frontend/modules/unit/actions/actions.class.php I have
>> [reduced for simplicity]:
>>
>> class unitActions extends sfActions
>> {
>>
>> public function executeIndex(sfWebRequest $request)
>> {
>> $this->unit_list = UnitPeer::doSelect(new Criteria());
>> }
>>
>> public function executeList(sfWebRequest $request)
>> {
>> $c = new Criteria();
>> $c->addAscendingOrderByColumn(UnitPeer::NAME);
>> $pager = new sfPropelPager('Unit', 10);
>> $pager->setCriteria($c);
>> $pager->setPage($this->getRequestParameter('page', 1));
>> $pager->init();
>> $this->unit_list = $pager;
>> }
>>
>> }
>>
>> -----------
>> In the /apps/frontend/modules/unit/templates/listSuccess.php file:
>>
>>
>> <?php echo $unit_list->getNbResults() ?> results found.<br />
>> Displaying results <?php echo $unit_list->getFirstIndice() ?> to <?
>> php echo $unit_list->getLastIndice() ?>.
>>
>> <table cellspacing="0">
>> <thead>
>> <tr>
>> <th class="state">State code</th>
>> <th class="national">National code</th>
>> <th class="name">Name</th>
>> <th class="nominal">Nominal hours</th>
>> </tr>
>> </thead>
>> <tbody>
>> <?php $i=0;
>> foreach ($unit_list->getResults() as $unit): ?>
>> <tr class="<?php echo ($i=($i==0?1:0)) ? 'even' : 'odd' ?>">
>> <td><?php echo $unit->getStateCode() ?></td>
>> <td><?php echo $unit->getNationalCode() ?></td>
>> <td><a href="<?php echo url_for('unit/show?id='.$unit-
>>> getId()) ?>"><?php echo $unit->getName() ?></td>
>> <td><?php echo $unit->getNominalHours() ?></td>
>> </tr>
>> <?php endforeach; ?>
>> </tbody>
>> </table>
>>
>>
>> <?php if ($unit_list->haveToPaginate()): ?>
>> <?php echo link_to('«', 'unit/list?page='.$unit_list-
>>> getFirstPage()) ?>
>> <?php echo link_to('<', 'unit/list?page='.$unit_list-
>>> getPreviousPage()) ?>
>> <?php $links = $unit_list->getLinks(10); foreach ($links as
>> $page): ?>
>> <?php echo ($page == $unit_list->getPage()) ? $page :
>> link_to($page, 'unit/list?page='.$page) ?>
>> <?php if ($page != $unit_list->getCurrentMaxLink()): ?> - <?php
>> endif ?>
>> <?php endforeach ?>
>> <?php echo link_to('>', 'unit/list?page='.$unit_list-
>>> getNextPage()) ?>
>> <?php echo link_to('»', 'unit/list?page='.$unit_list-
>>> getLastPage()) ?>
>> <?php endif ?>
>>
>>
>>
>>
>>
>>
>>
>> Adrian Gould
>> [email protected]
>>
>>
>>
>>
>>>
>
>
> >
Adrian Gould
[email protected]
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"symfony users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/symfony-users?hl=en
-~----------~----~----~----~------~----~------~--~---