Re: pagination driving me insane [message #174613 is a reply to message #174610] |
Wed, 22 June 2011 10:34 |
Jerry Stuckle
Messages: 2598 Registered: September 2010
Karma:
|
Senior Member |
|
|
On 6/22/2011 1:02 AM, Co wrote:
> On 22 jun, 04:18, Jerry Stuckle<jstuck...@attglobal.net> wrote:
>> On 6/21/2011 5:22 PM, Co wrote:
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>> Hi All,
>>
>>> I have a page which displays accounts. On the page there are three
>>> search options:
>>
>>> 1. sort by newest members first;
>>> 2. search by country;
>>> 3. search by name;
>>
>>> There is a limit of 10 accounts per page. If the query returns more
>>> than 10 records I have to browse to the next page.
>>> So I need to save the search options in the url when I go to the next
>>> page. I tried the following code but it doesn't work properly:
>>
>>> // check if any of the three buttons were clicked
>>> if(isset($_POST['listByq']) {
>>
>>> // did I click the search by country button
>>> if ($_POST['listByq'] == "by_country") {
>>
>>> $value = $_POST['country']; //put the country name in the
>>> variable for the URL
>>> $country = $_POST['country'];
>>> $queryString = "WHERE country='$country' AND email_activated='1'";
>>> $choice = $_POST['listByq']; } //put by_country in the variable
>>> for the URL
>>
>>> // did I click on the searh by firstname
>>> else if ($_POST['listByq'] == "by_firstname") {
>>
>>> $value = $_POST['fname'];
>>> $firstname = $_POST['fname'];
>>> $firstname = mysql_real_escape_string($firstname);
>>> $queryString = "WHERE firstname LIKE '%$firstname%' OR lastname
>>> LIKE '%$firstname%' AND email_activated='1'";
>>> $choice = $_POST['listByq'];
>>
>>> // or did I click the newest members first sort order
>>> } else if ($_POST['listByq'] == "newest_members") {
>>
>>> $value = "";
>>> $queryString = "WHERE email_activated='1' ORDER BY id DESC";
>>> $choice = $_POST['listByq'];
>>> }
>>> }
>>
>>> // now get the values form the URL
>>> if (isset($_GET['choice'])) {
>>> $choice = $_GET['choice'];
>>> $value = $_GET['value'];
>>> }
>>
>>> // if there was anything in $choice
>>> if ($choice<> "") {
>>> if($choice = "by_country") {
>>> $country = $value;
>>> $queryString = "WHERE country='$country' AND
>>> email_activated='1'";
>>> else if ($choice= "by_firstname") {
>>> $firstname = $value;
>>> $queryString = "WHERE firstname LIKE '%$firstname%' OR lastname
>>> LIKE '%$firstname%' AND email_activated='1'";
>>> $queryMsg = "Showing Members with the name you searched for"; }
>>> else if ($choice= "newest_members") {
>>> $queryString = "WHERE email_activated='1' ORDER BY id DESC";
>>> }
>>
>>> }
>>
>>> The pagination looks like this:
>>> $centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' .
>>> $add1 . '&choice=' . $choice . '&value=' . $value . '">' . $add1 .'</
>>> a> ';
>>
>>> I know there must be a solution for this which works but I have looked
>>> at it from all sides but I don't get it.
>>> Does anyone know how to get this working?
>>
>>> Marco
>>
>> Are you doing a GET or a POST? You're using both in your code - which
>> is highly unusual.
>>
>
> I know. Initially I was doing a post when I click one of the buttons.
> The country search, search by name or search by newest members.
> With the GET I was trying to get the values I put into the URL when I
> go to the next page.
> I have been struggling with this code the whole day but I can't seem
> to get it right.
>
> Marco
So, make up your mind. Do GET or POST - don't try to do both.
And once again - look at what you have in your $_GET and $_POST arrays,
and use them to trace through the code. Figure out what it's doing.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex(at)attglobal(dot)net
==================
|
|
|