Re: pagination driving me insane [message #174647 is a reply to message #174645] |
Thu, 23 June 2011 18:08 |
Co
Messages: 75 Registered: May 2011
Karma:
|
Member |
|
|
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
|
|
|