Solved

dropdown list with paging help

Posted on 2010-09-09
6
356 Views
Last Modified: 2013-12-13
hi
is there a way to have a dropdown say where it loads the first 100 records then some kind of paging feature to read the next 100 etc within the dropdown. i have posted my code and would be grateful if someone could help me get started with this? many thanks
$colname_rsSuggest1 = "-1";

if (isset($_SESSION['kt_idcode_usr'])) {

  $colname_rsSuggest1 = (get_magic_quotes_gpc()) ? $_SESSION['kt_idcode_usr'] : addslashes($_SESSION['kt_idcode_usr']);

}

mysql_select_db($database_conn, $conn);

$query_rsSuggest1 = sprintf("SELECT DISTINCT `boxref` FROM `files` WHERE customer = '%s' AND boxstatus = 1 ORDER BY boxref ASC", $colname_rsSuggest1);

$rsSuggest1 = mysql_query($query_rsSuggest1, $logistor) or die(mysql_error());

$row_rsSuggest1 = mysql_fetch_assoc($rsSuggest1);

$totalRows_rsSuggest1 = mysql_num_rows($rsSuggest1);



<p><fieldset><legend class="style8">Select a Box</legend>

<select name="suggestTextField1" id="suggestTextField1">

<option value="">Select a Box</option>

<?php

do {  

?>

<option value="<?php echo $row_rsSuggest1['boxref']?>"><?php echo $row_rsSuggest1['boxref']?></option>

<?php

} while ($row_rsSuggest1 = mysql_fetch_assoc($rsSuggest1));

  $rows = mysql_num_rows($rsSuggest1);

  if($rows > 0) {

      mysql_data_seek($rsSuggest1, 0);

	  $row_rsSuggest1 = mysql_fetch_assoc($rsSuggest1);

  }

?>

</select>

</fieldset>

 </p>

Open in new window

0
Comment
Question by:peter_coop
  • 3
  • 3
6 Comments
 
LVL 3

Expert Comment

by:Marbleman
Comment Utility

If you want to step in pages you could pass the requested page to PHP-Page as a param like ?page=5
Then you walk trough the rowset to the appropriate entry and continute your output from there

$nPage = $_GET["page"];

$nCount = mysql_num_rows($rsSuggest1))
$nMaxPerPage = 25;
$nMaxPage = ceil($nCount / $nMaxPerPage) - 1;
if ($nMaxPage > 0)
{
   $nPage = min(max($nPage, 0), $nMaxPage);
   mysql_data_seek($result, $nPage * $nMaxPerPage);

   //walk through the next $nMaxPerPage rows:
   for($i = 1; $i < $nMaxPerPage; $i++) {

       $row_rsSuggest1 = mysql_fetch_assoc($rsSuggest1);
       //perform output or something else here...


   }
}

Open in new window

0
 

Author Comment

by:peter_coop
Comment Utility
thanks for reply. 2 questions. where is this parameter from: $nPage = $_GET["page"];
and also, could you mark up your example in my code? thanks
0
 
LVL 3

Accepted Solution

by:
Marbleman earned 250 total points
Comment Utility
page is a parameter that you send to the php-script:

myCode.php?page=X

myCode.php?page=2 will give you rows 26 to 50
myCode.php?page=3 will give you entries 51 to 100


$colname_rsSuggest1 = "-1";
if (isset($_SESSION['kt_idcode_usr'])) {
  $colname_rsSuggest1 = (get_magic_quotes_gpc()) ? $_SESSION['kt_idcode_usr'] : addslashes($_SESSION['kt_idcode_usr']);
}
mysql_select_db($database_conn, $conn);
$query_rsSuggest1 = sprintf("SELECT DISTINCT `boxref` FROM `files` WHERE customer = '%s' AND boxstatus = 1 ORDER BY boxref ASC", $colname_rsSuggest1);
$rsSuggest1 = mysql_query($query_rsSuggest1, $logistor) or die(mysql_error());
$row_rsSuggest1 = mysql_fetch_assoc($rsSuggest1);
$totalRows_rsSuggest1 = mysql_num_rows($rsSuggest1);

<p><fieldset><legend class="style8">Select a Box</legend>
<select name="suggestTextField1" id="suggestTextField1">
<option value="">Select a Box</option>
<?php
do {  
?>
<option value="<?php echo $row_rsSuggest1['boxref']?>"><?php echo $row_rsSuggest1['boxref']?></option>
<?php
} while ($row_rsSuggest1 = mysql_fetch_assoc($rsSuggest1));
  $rows = mysql_num_rows($rsSuggest1);
  if($rows > 0) {

//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
$nPage = $_GET["page"];

$nCount = mysql_num_rows($rsSuggest1))
$nMaxPerPage = 25;
$nMaxPage = ceil($nCount / $nMaxPerPage) - 1;
if ($nMaxPage > 0)
{
   $nPage = min(max($nPage, 0), $nMaxPage);
   mysql_data_seek($result, $nPage * $nMaxPerPage);

   //walk through the next $nMaxPerPage rows:
   for($i = 1; $i < $nMaxPerPage; $i++) {

       $row_rsSuggest1 = mysql_fetch_assoc($rsSuggest1);
       //perform output or something else here...


   }
}

//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  }
?>
</select>
</fieldset>
 </p>

Open in new window

0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 

Author Comment

by:peter_coop
Comment Utility
where is page defined? as in $nPage = $_GET["page"];
thanks
0
 
LVL 3

Expert Comment

by:Marbleman
Comment Utility
0
 

Author Closing Comment

by:peter_coop
Comment Utility
thank you for help and link.
0

Featured Post

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

Author Note: Since this E-E article was originally written, years ago, formal testing has come into common use in the world of PHP.  PHPUnit (http://en.wikipedia.org/wiki/PHPUnit) and similar technologies have enjoyed wide adoption, making it possib…
Load balancing is the method of dividing the total amount of work performed by one computer between two or more computers. Its aim is to get more work done in the same amount of time, ensuring that all the users get served faster.
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now