Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.php > #2282 > unrolled thread

pagination driving me insane

Started byCo <vonclausowitz@gmail.com>
First post2011-06-21 14:22 -0700
Last post2011-06-23 15:03 -0400
Articles 12 — 2 participants

Back to article view | Back to comp.lang.php


Contents

  pagination driving me insane Co <vonclausowitz@gmail.com> - 2011-06-21 14:22 -0700
    Re: pagination driving me insane Jerry Stuckle <jstucklex@attglobal.net> - 2011-06-21 22:18 -0400
      Re: pagination driving me insane Co <vonclausowitz@gmail.com> - 2011-06-21 22:02 -0700
        Re: pagination driving me insane Jerry Stuckle <jstucklex@attglobal.net> - 2011-06-22 06:34 -0400
          Re: pagination driving me insane Co <vonclausowitz@gmail.com> - 2011-06-22 05:50 -0700
            Re: pagination driving me insane Jerry Stuckle <jstucklex@attglobal.net> - 2011-06-22 10:54 -0400
              Re: pagination driving me insane Co <vonclausowitz@gmail.com> - 2011-06-22 09:57 -0700
                Re: pagination driving me insane Jerry Stuckle <jstucklex@attglobal.net> - 2011-06-22 13:17 -0400
                  Re: pagination driving me insane Co <vonclausowitz@gmail.com> - 2011-06-23 10:24 -0700
                    Re: pagination driving me insane Jerry Stuckle <jstucklex@attglobal.net> - 2011-06-23 13:27 -0400
                      Re: pagination driving me insane Co <vonclausowitz@gmail.com> - 2011-06-23 11:08 -0700
                        Re: pagination driving me insane Jerry Stuckle <jstucklex@attglobal.net> - 2011-06-23 15:03 -0400

#2282 — pagination driving me insane

FromCo <vonclausowitz@gmail.com>
Date2011-06-21 14:22 -0700
Subjectpagination driving me insane
Message-ID<c37ec843-dead-44f9-95be-cabfec77dfb1@d42g2000yqa.googlegroups.com>
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 .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' .
$add1 . '&choice=' . $choice . '&value=' . $value . '">' . $add1 . '</
a> &nbsp;';

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

[toc] | [next] | [standalone]


#2284

FromJerry Stuckle <jstucklex@attglobal.net>
Date2011-06-21 22:18 -0400
Message-ID<itrjdm$rgu$1@dont-email.me>
In reply to#2282
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 .= '&nbsp;<a href="' . $_SERVER['PHP_SELF'] . '?pn=' .
> $add1 . '&choice=' . $choice . '&value=' . $value . '">' . $add1 .'</
> a>  &nbsp;';
>
> 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.

-- 
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================

[toc] | [prev] | [next] | [standalone]


#2285

FromCo <vonclausowitz@gmail.com>
Date2011-06-21 22:02 -0700
Message-ID<c43fb6be-a752-4d3f-83d2-c831da6ae82a@c20g2000vbv.googlegroups.com>
In reply to#2284
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 .= '&nbsp;<a href="' . $_SERVER['PHP_SELF'] . '?pn=' .
> > $add1 . '&choice=' . $choice . '&value=' . $value . '">' . $add1 .'</
> > a>  &nbsp;';
>
> > 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.
>
> --
> ==================
> Remove the "x" from my email address
> Jerry Stuckle
> JDS Computer Training Corp.
> jstuck...@attglobal.net
> ==================

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

[toc] | [prev] | [next] | [standalone]


#2288

FromJerry Stuckle <jstucklex@attglobal.net>
Date2011-06-22 06:34 -0400
Message-ID<itsger$ghs$1@dont-email.me>
In reply to#2285
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 .= '&nbsp;<a href="' . $_SERVER['PHP_SELF'] . '?pn=' .
>>> $add1 . '&choice=' . $choice . '&value=' . $value . '">' . $add1 .'</
>>> a>    &nbsp;';
>>
>>> 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@attglobal.net
==================

[toc] | [prev] | [next] | [standalone]


#2290

FromCo <vonclausowitz@gmail.com>
Date2011-06-22 05:50 -0700
Message-ID<b413d9d8-791c-4c8a-ae22-57ee968e1ef0@q12g2000prb.googlegroups.com>
In reply to#2288
Jerry,

i need the POST to search in my members accounts.
The problem is that PHP loses the query I run when I goto the next
page.
I preferred using a session variable but I wasn't able to get rit of
the variable after I filled it. So everytime when I come back to the
page it will automatically use the session variable again.
Or is there a way to clear the session variable when I load the page?

Marco


> > 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.
> jstuck...@attglobal.net
> ==================
>
>

[toc] | [prev] | [next] | [standalone]


#2292

FromJerry Stuckle <jstucklex@attglobal.net>
Date2011-06-22 10:54 -0400
Message-ID<itsvmu$p5b$1@dont-email.me>
In reply to#2290
On 6/22/2011 8:50 AM, Co wrote:
>>> 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.
>>
 > Jerry,
 >
 > i need the POST to search in my members accounts.
 > The problem is that PHP loses the query I run when I goto the next
 > page.
 > I preferred using a session variable but I wasn't able to get rit of
 > the variable after I filled it. So everytime when I come back to the
 > page it will automatically use the session variable again.
 > Or is there a way to clear the session variable when I load the page?
 >
 > Marco
 >
 >

<Top posting fixed>

No, it's no longer there because the browser didn't send it.  PHP didn't 
lose anything.  From the browser's point of view, each page is a new 
request to the server, and the browser sends only what you tell it to send.

What you need to do is determine if this a new search or a continuation 
of the previous search (i.e. display the next page).  If the former, 
clear your old $_SESSION values (if any) and put new ones in there and 
display the first page.  If the latter, use the data stored in the 
$_SESSION and display the next page of the search.

There are any number of ways to determine if it is a continuation page; 
i.e. the $_GET or $_POST value has "page=next" or "page=3" in it; the 
current page number is in a hidden field in the form or similar.  A new 
search wouldn't have those values.

-- 
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================

[toc] | [prev] | [next] | [standalone]


#2297

FromCo <vonclausowitz@gmail.com>
Date2011-06-22 09:57 -0700
Message-ID<3a5c6d57-5f77-4ede-bb3d-ffe72c9296f9@d1g2000prg.googlegroups.com>
In reply to#2292
On 22 jun, 17:54, Jerry Stuckle <jstuck...@attglobal.net> wrote:
> On 6/22/2011 8:50 AM, Co wrote:>>> 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.
>
>  > Jerry,
>  >
>  > i need the POST to search in my members accounts.
>  > The problem is that PHP loses the query I run when I goto the next
>  > page.
>  > I preferred using a session variable but I wasn't able to get rit of
>  > the variable after I filled it. So everytime when I come back to the
>  > page it will automatically use the session variable again.
>  > Or is there a way to clear the session variable when I load the page?
>  >
>  > Marco
>  >
>  >
>
> <Top posting fixed>
>
> No, it's no longer there because the browser didn't send it.  PHP didn't
> lose anything.  From the browser's point of view, each page is a new
> request to the server, and the browser sends only what you tell it to send.
>
> What you need to do is determine if this a new search or a continuation
> of the previous search (i.e. display the next page).  If the former,
> clear your old $_SESSION values (if any) and put new ones in there and
> display the first page.  If the latter, use the data stored in the
> $_SESSION and display the next page of the search.
>
> There are any number of ways to determine if it is a continuation page;
> i.e. the $_GET or $_POST value has "page=next" or "page=3" in it; the
> current page number is in a hidden field in the form or similar.  A new
> search wouldn't have those values.
>
> --
> ==================
> Remove the "x" from my email address
> Jerry Stuckle
> JDS Computer Training Corp.
> jstuck...@attglobal.net
> ==================
>
>

I will try to work on that.
But can I clear the session before I open the page so that an
older session that I used ealier will be cleared until I hit the
submit button? I don't want to clear the whole sessions just the one
variable.

Marco

[toc] | [prev] | [next] | [standalone]


#2299

FromJerry Stuckle <jstucklex@attglobal.net>
Date2011-06-22 13:17 -0400
Message-ID<itt832$m12$3@dont-email.me>
In reply to#2297
On 6/22/2011 12:57 PM, Co wrote:
> On 22 jun, 17:54, Jerry Stuckle<jstuck...@attglobal.net>  wrote:
>> On 6/22/2011 8:50 AM, Co wrote:>>>  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.
>>
>>   >  Jerry,
>>   >
>>   >  i need the POST to search in my members accounts.
>>   >  The problem is that PHP loses the query I run when I goto the next
>>   >  page.
>>   >  I preferred using a session variable but I wasn't able to get rit of
>>   >  the variable after I filled it. So everytime when I come back to the
>>   >  page it will automatically use the session variable again.
>>   >  Or is there a way to clear the session variable when I load the page?
>>   >
>>   >  Marco
>>   >
>>   >
>>
>> <Top posting fixed>
>>
>> No, it's no longer there because the browser didn't send it.  PHP didn't
>> lose anything.  From the browser's point of view, each page is a new
>> request to the server, and the browser sends only what you tell it to send.
>>
>> What you need to do is determine if this a new search or a continuation
>> of the previous search (i.e. display the next page).  If the former,
>> clear your old $_SESSION values (if any) and put new ones in there and
>> display the first page.  If the latter, use the data stored in the
>> $_SESSION and display the next page of the search.
>>
>> There are any number of ways to determine if it is a continuation page;
>> i.e. the $_GET or $_POST value has "page=next" or "page=3" in it; the
>> current page number is in a hidden field in the form or similar.  A new
>> search wouldn't have those values.
>>
>
> I will try to work on that.
> But can I clear the session before I open the page so that an
> older session that I used ealier will be cleared until I hit the
> submit button? I don't want to clear the whole sessions just the one
> variable.
>
> Marco

You can unset() any element you want in the $_SESSION array.  But you 
can't do ANYTHING until the user requests a page - your code doesn't get 
invoked until that time.

-- 
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================

[toc] | [prev] | [next] | [standalone]


#2320

FromCo <vonclausowitz@gmail.com>
Date2011-06-23 10:24 -0700
Message-ID<3abdeca7-3ba2-49a3-92d1-463b43655f8c@l18g2000yql.googlegroups.com>
In reply to#2299
On 22 jun, 19:17, Jerry Stuckle <jstuck...@attglobal.net> wrote:
> On 6/22/2011 12:57 PM, Co wrote:
>
>
>
>
>
>
>
>
>
> > On 22 jun, 17:54, Jerry Stuckle<jstuck...@attglobal.net>  wrote:
> >> On 6/22/2011 8:50 AM, Co wrote:>>>  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.
>
> >>   >  Jerry,
>
> >>   >  i need the POST to search in my members accounts.
> >>   >  The problem is that PHP loses the query I run when I goto the next
> >>   >  page.
> >>   >  I preferred using a session variable but I wasn't able to get rit of
> >>   >  the variable after I filled it. So everytime when I come back to the
> >>   >  page it will automatically use the session variable again.
> >>   >  Or is there a way to clear the session variable when I load the page?
>
> >>   >  Marco
>
> >> <Top posting fixed>
>
> >> No, it's no longer there because the browser didn't send it.  PHP didn't
> >> lose anything.  From the browser's point of view, each page is a new
> >> request to the server, and the browser sends only what you tell it to send.
>
> >> What you need to do is determine if this a new search or a continuation
> >> of the previous search (i.e. display the next page).  If the former,
> >> clear your old $_SESSION values (if any) and put new ones in there and
> >> display the first page.  If the latter, use the data stored in the
> >> $_SESSION and display the next page of the search.
>
> >> There are any number of ways to determine if it is a continuation page;
> >> i.e. the $_GET or $_POST value has "page=next" or "page=3" in it; the
> >> current page number is in a hidden field in the form or similar.  A new
> >> search wouldn't have those values.
>
> > I will try to work on that.
> > But can I clear the session before I open the page so that an
> > older session that I used ealier will be cleared until I hit the
> > submit button? I don't want to clear the whole sessions just the one
> > variable.
>
> > Marco
>
> You can unset() any element you want in the $_SESSION array.  But you
> can't do ANYTHING until the user requests a page - your code doesn't get
> invoked until that time.
>
> --
> ==================
> Remove the "x" from my email address
> Jerry Stuckle
> JDS Computer Training Corp.
> jstuck...@attglobal.net
> ==================

I have been trying the following code but I get an error when I click
the next page on my form:

if(isset($_POST['listByq']) && $_POST['listByq'] != "add") {
    unset($_SESSION['listByq']);
	$option = "";
	$_SESSION['listByq'] = $_POST['listByq'];
}

if(isset($_SESSION['listByq'])) {
   $option = $_SESSION['listByq'];
 if ($option == "by_country") {

	$country = $_POST['country'];

    $queryString = "WHERE country='$country' AND email_activated='1'";
    $queryMsg = "Showing Members from the country you searched for";

} else if ($option == "by_firstname") {

	$firstname = $_POST['fname'];
	$firstname = stripslashes($firstname);
    $firstname = strip_tags($firstname);
	$firstname = eregi_replace("`", "", $firstname);
	$firstname = mysql_real_escape_string($firstname);
    $queryString = "WHERE rank LIKE '%$firstname%' OR firstname LIKE '%
$firstname%' OR lastname LIKE '%$firstname%' AND email_activated='1'";
    $queryMsg = "Showing Members with the name you searched for";

} else if ($option == "newest_members") {

    $queryString = "WHERE email_activated='1' ORDER BY id DESC";
	$queryMsg = "Showing Newest to Oldest Members";
}

}  // end of if(isset($_SESSION....


Notice: Undefined index: fname

When the POST has been done there is no problem but after that it
doesn't recognise fname or country anymore.

Marco

[toc] | [prev] | [next] | [standalone]


#2321

FromJerry Stuckle <jstucklex@attglobal.net>
Date2011-06-23 13:27 -0400
Message-ID<itvt2u$27r$1@dont-email.me>
In reply to#2320
On 6/23/2011 1:24 PM, Co wrote:
> On 22 jun, 19:17, Jerry Stuckle<jstuck...@attglobal.net>  wrote:
>> On 6/22/2011 12:57 PM, Co wrote:
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>> On 22 jun, 17:54, Jerry Stuckle<jstuck...@attglobal.net>    wrote:
>>>> On 6/22/2011 8:50 AM, Co wrote:>>>    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.
>>
>>>>    >    Jerry,
>>
>>>>    >    i need the POST to search in my members accounts.
>>>>    >    The problem is that PHP loses the query I run when I goto the next
>>>>    >    page.
>>>>    >    I preferred using a session variable but I wasn't able to get rit of
>>>>    >    the variable after I filled it. So everytime when I come back to the
>>>>    >    page it will automatically use the session variable again.
>>>>    >    Or is there a way to clear the session variable when I load the page?
>>
>>>>    >    Marco
>>
>>>> <Top posting fixed>
>>
>>>> No, it's no longer there because the browser didn't send it.  PHP didn't
>>>> lose anything.  From the browser's point of view, each page is a new
>>>> request to the server, and the browser sends only what you tell it to send.
>>
>>>> What you need to do is determine if this a new search or a continuation
>>>> of the previous search (i.e. display the next page).  If the former,
>>>> clear your old $_SESSION values (if any) and put new ones in there and
>>>> display the first page.  If the latter, use the data stored in the
>>>> $_SESSION and display the next page of the search.
>>
>>>> There are any number of ways to determine if it is a continuation page;
>>>> i.e. the $_GET or $_POST value has "page=next" or "page=3" in it; the
>>>> current page number is in a hidden field in the form or similar.  A new
>>>> search wouldn't have those values.
>>
>>> I will try to work on that.
>>> But can I clear the session before I open the page so that an
>>> older session that I used ealier will be cleared until I hit the
>>> submit button? I don't want to clear the whole sessions just the one
>>> variable.
>>
>>> Marco
>>
>> You can unset() any element you want in the $_SESSION array.  But you
>> can't do ANYTHING until the user requests a page - your code doesn't get
>> invoked until that time.
>>
>> --
>> ==================
>> Remove the "x" from my email address
>> Jerry Stuckle
>> JDS Computer Training Corp.
>> jstuck...@attglobal.net
>> ==================
>
> I have been trying the following code but I get an error when I click
> the next page on my form:
>
> if(isset($_POST['listByq'])&&  $_POST['listByq'] != "add") {
>      unset($_SESSION['listByq']);
> 	$option = "";
> 	$_SESSION['listByq'] = $_POST['listByq'];
> }
>
> if(isset($_SESSION['listByq'])) {
>     $option = $_SESSION['listByq'];
>   if ($option == "by_country") {
>
> 	$country = $_POST['country'];
>
>      $queryString = "WHERE country='$country' AND email_activated='1'";
>      $queryMsg = "Showing Members from the country you searched for";
>
> } else if ($option == "by_firstname") {
>
> 	$firstname = $_POST['fname'];
> 	$firstname = stripslashes($firstname);
>      $firstname = strip_tags($firstname);
> 	$firstname = eregi_replace("`", "", $firstname);
> 	$firstname = mysql_real_escape_string($firstname);
>      $queryString = "WHERE rank LIKE '%$firstname%' OR firstname LIKE '%
> $firstname%' OR lastname LIKE '%$firstname%' AND email_activated='1'";
>      $queryMsg = "Showing Members with the name you searched for";
>
> } else if ($option == "newest_members") {
>
>      $queryString = "WHERE email_activated='1' ORDER BY id DESC";
> 	$queryMsg = "Showing Newest to Oldest Members";
> }
>
> }  // end of if(isset($_SESSION....
>
>
> Notice: Undefined index: fname
>
> When the POST has been done there is no problem but after that it
> doesn't recognise fname or country anymore.
>
> Marco

That's because they weren't in the form, so the browser can't send them.


-- 
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================

[toc] | [prev] | [next] | [standalone]


#2323

FromCo <vonclausowitz@gmail.com>
Date2011-06-23 11:08 -0700
Message-ID<a45c2f1f-edd5-4a48-bd06-3fe42ef4bafe@d14g2000yqb.googlegroups.com>
In reply to#2321
On 23 jun, 19:27, Jerry Stuckle <jstuck...@attglobal.net> wrote:
> On 6/23/2011 1:24 PM, Co wrote:
>
>
>
>
>
>
>
>
>
> > On 22 jun, 19:17, Jerry Stuckle<jstuck...@attglobal.net>  wrote:
> >> On 6/22/2011 12:57 PM, Co wrote:
>
> >>> On 22 jun, 17:54, Jerry Stuckle<jstuck...@attglobal.net>    wrote:
> >>>> On 6/22/2011 8:50 AM, Co wrote:>>>    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.
>
> >>>>    >    Jerry,
>
> >>>>    >    i need the POST to search in my members accounts.
> >>>>    >    The problem is that PHP loses the query I run when I goto the next
> >>>>    >    page.
> >>>>    >    I preferred using a session variable but I wasn't able to get rit of
> >>>>    >    the variable after I filled it. So everytime when I come back to the
> >>>>    >    page it will automatically use the session variable again.
> >>>>    >    Or is there a way to clear the session variable when I load the page?
>
> >>>>    >    Marco
>
> >>>> <Top posting fixed>
>
> >>>> No, it's no longer there because the browser didn't send it.  PHP didn't
> >>>> lose anything.  From the browser's point of view, each page is a new
> >>>> request to the server, and the browser sends only what you tell it to send.
>
> >>>> What you need to do is determine if this a new search or a continuation
> >>>> of the previous search (i.e. display the next page).  If the former,
> >>>> clear your old $_SESSION values (if any) and put new ones in there and
> >>>> display the first page.  If the latter, use the data stored in the
> >>>> $_SESSION and display the next page of the search.
>
> >>>> There are any number of ways to determine if it is a continuation page;
> >>>> i.e. the $_GET or $_POST value has "page=next" or "page=3" in it; the
> >>>> current page number is in a hidden field in the form or similar.  A new
> >>>> search wouldn't have those values.
>
> >>> I will try to work on that.
> >>> But can I clear the session before I open the page so that an
> >>> older session that I used ealier will be cleared until I hit the
> >>> submit button? I don't want to clear the whole sessions just the one
> >>> variable.
>
> >>> Marco
>
> >> You can unset() any element you want in the $_SESSION array.  But you
> >> can't do ANYTHING until the user requests a page - your code doesn't get
> >> invoked until that time.
>
> >> --
> >> ==================
> >> Remove the "x" from my email address
> >> Jerry Stuckle
> >> JDS Computer Training Corp.
> >> jstuck...@attglobal.net
> >> ==================
>
> > I have been trying the following code but I get an error when I click
> > the next page on my form:
>
> > if(isset($_POST['listByq'])&&  $_POST['listByq'] != "add") {
> >      unset($_SESSION['listByq']);
> >    $option = "";
> >    $_SESSION['listByq'] = $_POST['listByq'];
> > }
>
> > if(isset($_SESSION['listByq'])) {
> >     $option = $_SESSION['listByq'];
> >   if ($option == "by_country") {
>
> >    $country = $_POST['country'];
>
> >      $queryString = "WHERE country='$country' AND email_activated='1'";
> >      $queryMsg = "Showing Members from the country you searched for";
>
> > } else if ($option == "by_firstname") {
>
> >    $firstname = $_POST['fname'];
> >    $firstname = stripslashes($firstname);
> >      $firstname = strip_tags($firstname);
> >    $firstname = eregi_replace("`", "", $firstname);
> >    $firstname = mysql_real_escape_string($firstname);
> >      $queryString = "WHERE rank LIKE '%$firstname%' OR firstname LIKE '%
> > $firstname%' OR lastname LIKE '%$firstname%' AND email_activated='1'";
> >      $queryMsg = "Showing Members with the name you searched for";
>
> > } else if ($option == "newest_members") {
>
> >      $queryString = "WHERE email_activated='1' ORDER BY id DESC";
> >    $queryMsg = "Showing Newest to Oldest Members";
> > }
>
> > }  // end of if(isset($_SESSION....
>
> > Notice: Undefined index: fname
>
> > When the POST has been done there is no problem but after that it
> > doesn't recognise fname or country anymore.
>
> > Marco
>
> That's because they weren't in the form, so the browser can't send them.
>
> --
> ==================
> Remove the "x" from my email address
> Jerry Stuckle
> JDS Computer Training Corp.
> jstuck...@attglobal.net
> ==================

Hmmm,

I created a second SESSION variable like $_SESSION['ValueByq']
this one holds either the country value or the fname value.

if(isset($_POST['listByq']) && $_POST['listByq'] != "add") {
    unset($_SESSION['listByq']);
	unset($_SESSION['valueByq']);
	$option = "";
	$_SESSION['listByq'] = $_POST['listByq'];
	if(isset($_POST['fname'])) { $_SESSION['valueByq'] =
$_POST['fname']; }
	if(isset($_POST['country'])) { $_SESSION['valueByq'] =
$_POST['country']; }
}

The only thing I don't know is what will happen when i login, go to
this page and the
session variables don't exist yet?

Marco

[toc] | [prev] | [next] | [standalone]


#2325

FromJerry Stuckle <jstucklex@attglobal.net>
Date2011-06-23 15:03 -0400
Message-ID<iu02me$cmv$1@dont-email.me>
In reply to#2323
On 6/23/2011 2:08 PM, Co wrote:
> On 23 jun, 19:27, Jerry Stuckle<jstuck...@attglobal.net>  wrote:
>> On 6/23/2011 1:24 PM, Co wrote:
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>> On 22 jun, 19:17, Jerry Stuckle<jstuck...@attglobal.net>    wrote:
>>>> On 6/22/2011 12:57 PM, Co wrote:
>>
>>>>> On 22 jun, 17:54, Jerry Stuckle<jstuck...@attglobal.net>      wrote:
>>>>>> On 6/22/2011 8:50 AM, Co wrote:>>>      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.
>>
>>>>>>     >      Jerry,
>>
>>>>>>     >      i need the POST to search in my members accounts.
>>>>>>     >      The problem is that PHP loses the query I run when I goto the next
>>>>>>     >      page.
>>>>>>     >      I preferred using a session variable but I wasn't able to get rit of
>>>>>>     >      the variable after I filled it. So everytime when I come back to the
>>>>>>     >      page it will automatically use the session variable again.
>>>>>>     >      Or is there a way to clear the session variable when I load the page?
>>
>>>>>>     >      Marco
>>
>>>>>> <Top posting fixed>
>>
>>>>>> No, it's no longer there because the browser didn't send it.  PHP didn't
>>>>>> lose anything.  From the browser's point of view, each page is a new
>>>>>> request to the server, and the browser sends only what you tell it to send.
>>
>>>>>> What you need to do is determine if this a new search or a continuation
>>>>>> of the previous search (i.e. display the next page).  If the former,
>>>>>> clear your old $_SESSION values (if any) and put new ones in there and
>>>>>> display the first page.  If the latter, use the data stored in the
>>>>>> $_SESSION and display the next page of the search.
>>
>>>>>> There are any number of ways to determine if it is a continuation page;
>>>>>> i.e. the $_GET or $_POST value has "page=next" or "page=3" in it; the
>>>>>> current page number is in a hidden field in the form or similar.  A new
>>>>>> search wouldn't have those values.
>>
>>>>> I will try to work on that.
>>>>> But can I clear the session before I open the page so that an
>>>>> older session that I used ealier will be cleared until I hit the
>>>>> submit button? I don't want to clear the whole sessions just the one
>>>>> variable.
>>
>>>>> Marco
>>
>>>> You can unset() any element you want in the $_SESSION array.  But you
>>>> can't do ANYTHING until the user requests a page - your code doesn't get
>>>> invoked until that time.
>>
>>>> --
>>>> ==================
>>>> Remove the "x" from my email address
>>>> Jerry Stuckle
>>>> JDS Computer Training Corp.
>>>> jstuck...@attglobal.net
>>>> ==================
>>
>>> I have been trying the following code but I get an error when I click
>>> the next page on my form:
>>
>>> if(isset($_POST['listByq'])&&    $_POST['listByq'] != "add") {
>>>       unset($_SESSION['listByq']);
>>>     $option = "";
>>>     $_SESSION['listByq'] = $_POST['listByq'];
>>> }
>>
>>> if(isset($_SESSION['listByq'])) {
>>>      $option = $_SESSION['listByq'];
>>>    if ($option == "by_country") {
>>
>>>     $country = $_POST['country'];
>>
>>>       $queryString = "WHERE country='$country' AND email_activated='1'";
>>>       $queryMsg = "Showing Members from the country you searched for";
>>
>>> } else if ($option == "by_firstname") {
>>
>>>     $firstname = $_POST['fname'];
>>>     $firstname = stripslashes($firstname);
>>>       $firstname = strip_tags($firstname);
>>>     $firstname = eregi_replace("`", "", $firstname);
>>>     $firstname = mysql_real_escape_string($firstname);
>>>       $queryString = "WHERE rank LIKE '%$firstname%' OR firstname LIKE '%
>>> $firstname%' OR lastname LIKE '%$firstname%' AND email_activated='1'";
>>>       $queryMsg = "Showing Members with the name you searched for";
>>
>>> } else if ($option == "newest_members") {
>>
>>>       $queryString = "WHERE email_activated='1' ORDER BY id DESC";
>>>     $queryMsg = "Showing Newest to Oldest Members";
>>> }
>>
>>> }  // end of if(isset($_SESSION....
>>
>>> Notice: Undefined index: fname
>>
>>> When the POST has been done there is no problem but after that it
>>> doesn't recognise fname or country anymore.
>>
>>> Marco
>>
>> That's because they weren't in the form, so the browser can't send them.
>>
>> --
>> ==================
>> Remove the "x" from my email address
>> Jerry Stuckle
>> JDS Computer Training Corp.
>> jstuck...@attglobal.net
>> ==================
>
> Hmmm,
>
> I created a second SESSION variable like $_SESSION['ValueByq']
> this one holds either the country value or the fname value.
>
> if(isset($_POST['listByq'])&&  $_POST['listByq'] != "add") {
>      unset($_SESSION['listByq']);
> 	unset($_SESSION['valueByq']);
> 	$option = "";
> 	$_SESSION['listByq'] = $_POST['listByq'];
> 	if(isset($_POST['fname'])) { $_SESSION['valueByq'] =
> $_POST['fname']; }
> 	if(isset($_POST['country'])) { $_SESSION['valueByq'] =
> $_POST['country']; }
> }
>
> The only thing I don't know is what will happen when i login, go to
> this page and the
> session variables don't exist yet?
>
> Marco

You need to test to see if they are set or not using isset(), like you 
are with your $_POST values.  And if they aren't set, take the 
appropriate action.

-- 
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================

[toc] | [prev] | [standalone]


Back to top | Article view | comp.lang.php


csiph-web