Avatar billede macus Nybegynder
11. juli 2006 - 08:13 Der er 21 kommentarer

Pageing med select/option

Hey

Er der nogen der vil lave pageing for mig i php? Jeg havde forestillet mig at man kunne vælge side i en dropdown hvor der stod 'Side 1', 'Side 2' osv.

Udover det må der også gerne stå hvor mange sider der i alt er + hvilken side man er på lige nu, samt en knap på hver side af dropdown menuen til at gå frem og tilbage i siderne..

jeg havde forestillet mig noget ala. det her:

http://www.fluii.dk/pic/FluiiDK-1557.gif

Håber der er nogen der har mod på dette, og skulle der være spørgsmål så stil dem endeligt.. ;o)
Avatar billede zynzz Praktikant
11. juli 2006 - 12:02 #1
Jeg har lavet et lille script her:

<?
// antal tags
$antal_tags = "102";

// antal tags pr. side
$pr_side = "10";

// sider ialt
$sider = $antal_tags/$pr_side;

// Laver så der ikke kommer et fx. kommatal fx. 4.2 så bliver det 5

$side_ialt = ceil($sider);   



// hvilken side er jeg på

if(!isset($_GET['side'])){
$side_nr = "1";}

if(isset($_GET['side'])){
$side_nr = $_GET['side']; }

?>

<table border=0 width=100% cellspacing=0 cellpadding=0 height=15>
<tr>
<td><? echo"Du er på side nr:" . $side_nr; ?></td>
<td>

<form action="" method="post" name='skiftForm'>
<select name='select' onChange="location.replace(document.skiftForm.select.value);">
<?
$i = 1;
while($i <= $side_ialt) { ?>
<option value="nyheder.php?side=<? echo $i; ?>">side <? echo $i; ?></option>
<?
$i++;
}
?>
</select>
</form>

</td>
<td><? echo $side_ialt; ?></td>
</tr>
</table>
Avatar billede macus Nybegynder
11. juli 2006 - 12:32 #2
.. og det eneste jeg simpelthen skal smide ind for at få det til at virke, er blot hvor mange posts i alt der er oppe i:

$antal_tags = "102";

oder was? ;)
Avatar billede macus Nybegynder
11. juli 2006 - 12:49 #3
der må mange noget SQL, og kan det ikke gøres så den side man er på, er selected i dropdrown menuen? :o)
Avatar billede zynzz Praktikant
11. juli 2006 - 13:15 #4
Altså det der er kun sideskift menuen, hvis du vil lave vis delen skal du lave:

$result=mysql_query("SELECT id FROM dintabel");
$antal_tags = mysql_num_rows($result);


<?
$res=mysql_query("SELECT id FROM dintabel");
while($row = mysql_fetch_array($res)) { echo"noget her";
}
?>
Avatar billede zynzz Praktikant
11. juli 2006 - 13:21 #5
<?
// Inkludere config.php som connect fil
include("config.php");

// Forbinder til databasen for at tælle tags
$result=mysql_query("SELECT id FROM dintabel");

// antal tags
$antal_tags = mysql_num_rows($result);

// antal tags pr. side
$pr_side = "10";

// sider ialt
$sider = $antal_tags/$pr_side;

// Laver så der ikke kommer et fx. kommatal fx. 4.2 så bliver det 5

$side_ialt = ceil($sider);   



// hvilken side er jeg på

if(!isset($_GET['side'])){
$side_nr = "1";}

if(isset($_GET['side'])){
$side_nr = $_GET['side']; }

?>

<table border=0 width=100% cellspacing=0 cellpadding=0 height=15>
<tr>
<td><? echo"Du er på side nr:" . $side_nr; ?></td>
<td>

<form action="" method="post" name='skiftForm'>
<select name='select' onChange="location.replace(document.skiftForm.select.value);">
<?
$i = 1;
while($i <= $side_ialt) { ?>
<option value="nyheder.php?side=<? echo $i; ?>">side <? echo $i; ?></option>
<?
$i++;
}
?>
</select>
</form>

</td>
<td><? echo $side_ialt; ?></td>
</tr>
</table>

<?
$res=mysql_query("SELECT * FROM dintabel limit $side_nr,$pr_side");
while($row = mysql_fetch_array($res)) { echo"noget her";
}
?>
Avatar billede macus Nybegynder
11. juli 2006 - 15:30 #6
Jeg går ud fra 'noget her' skal erstattes af den php kode der udskriver beskederne? :)
Avatar billede zynzz Praktikant
11. juli 2006 - 15:32 #7
ja...
Avatar billede macus Nybegynder
11. juli 2006 - 15:35 #8
jeg prøver lige ;)
Avatar billede macus Nybegynder
11. juli 2006 - 15:41 #9
Det virker ikke helt efter hensigten ;) den udskriver kun den seneste besked 10 gange, istedet for de 10 seneste beskeder..

Min kode ser nu således ud:
Avatar billede macus Nybegynder
11. juli 2006 - 15:41 #10
<?php
function string_tagster($besked) {
$besked = " ".$besked;
$besked = eregi_replace("([[:space:]{()\"'\[~#=;\&?\_-])((ftp|http|https|telnet|news|nttp|nntp|file):\/\/[a-z0-9~#%@\&\(\):;=\?\/\.,_-]+(\\[|\\]|[a-z0-9~#%@\&:;,=\?\/_\+-])+)", "\\1<A HREF=\"\\2\" TARGET=\"_blank\" class=\"black\">\\2</A>", $besked);
$besked = eregi_replace("([[:space:]{()\"'\[~#=;\&?\_-])(www\.[a-z0-9~#%@\&\(\):;=\?\/\.,_-]+[a-z0-9~#%@\&:;,=\?\/_\+-]+)", "\\1<A HREF=\"http://\\2\" TARGET=\"_blank\" class=\"black\">\\2</A>", $besked);
$besked = eregi_replace("([_\.0-9a-z-]+@([0-9a-z-]+)+\.[a-z]{2,4})","<A HREF=\"mailto:\\1\" class=\"black\">\\1</A>", $besked);
return substr($besked, 1);
}
?>
<?
// Forbinder til databasen for at tælle tags
$result=mysql_query("SELECT id FROM tagwall");

// antal tags
$antal_tags = mysql_num_rows($result);

// antal tags pr. side
$pr_side = "10";

// sider ialt
$sider = $antal_tags/$pr_side;

// Laver så der ikke kommer et fx. kommatal fx. 4.2 så bliver det 5

$side_ialt = ceil($sider); 

// hvilken side er jeg på

if(!isset($_GET['side'])){
$side_nr = "1";}

if(isset($_GET['side'])){
$side_nr = $_GET['side']; }

?>

<table border=0 width=100% cellspacing=0 cellpadding=0 height=15>
<tr>
<td><? echo"Du er på side nr:" . $side_nr; ?></td>
<td>

<form action="" method="post" name='skiftForm'>
<select name='select' onChange="location.replace(document.skiftForm.select.value);">
<?
$i = 1;
while($i <= $side_ialt) { ?>
<option value="index.php?side=<? echo $i; ?>">side <? echo $i; ?></option>
<?
$i++;
}
?>
</select>
</form>

</td>
<td><? echo $side_ialt; ?></td>
</tr>
</table>
<br>
<?
$res=mysql_query("SELECT * FROM tagwall limit $side_nr,$pr_side");
while($row = mysql_fetch_array($res)) { ?>

<?php
$vaelgbruger = $row_rsTagwall['navn'];
mysql_select_db($database_hhmedia, $hhmedia);
$query_rsBeskedInfo = "SELECT * FROM community WHERE id = '".$vaelgbruger."'";
$rsBeskedInfo = mysql_query($query_rsBeskedInfo, $hhmedia) or die(mysql_error());
$row_rsBeskedInfo = mysql_fetch_assoc($rsBeskedInfo);
$totalRows_rsBeskedInfo = mysql_num_rows($rsBeskedInfo);

$besked = $row_rsTagwall['besked'];

$besked = str_ireplace(":)", "<img src='images/smileys/smil.gif'>", $besked);
$besked = str_ireplace("8)", "<img src='images/smileys/solbriller.gif'>", $besked);
$besked = str_ireplace(":P", "<img src='images/smileys/tunge.gif'>", $besked);
$besked = str_ireplace("!-)", "<img src='images/smileys/sjov.gif'>", $besked);
$besked = str_ireplace(">:(", "<img src='images/smileys/ondtsmil.gif'>", $besked);
$besked = str_ireplace(":S", "<img src='images/smileys/skod.gif'>", $besked);
$besked = str_ireplace(":s", "<img src='images/smileys/skod.gif'>", $besked);
$besked = str_ireplace(":z", "<img src='images/smileys/sove.gif'>", $besked);
$besked = str_ireplace(":Z", "<img src='images/smileys/sove.gif'>", $besked);
$besked = str_ireplace(":D", "<img src='images/smileys/supergrin.gif'>", $besked);
$besked = str_ireplace(";)", "<img src='images/smileys/blink.gif'>", $besked);

$besked = string_tagster($besked);

?>
<table width="100%"  border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>af <b><a href="../profil.php?id=<?php echo $row_rsBeskedInfo['id']; ?>"><?php echo $row_rsBeskedInfo['brugernavn']; ?></a></b><?php
    if ($row_rsBeskedInfo['status'] == 'Lead Admin') {
    echo " | <font color=#FF0000><b>".$row_rsBeskedInfo['status']."</b></font>"; }
    else
    if ($row_rsBeskedInfo['status'] == 'Redaktør') {
    echo " | <font color=#0033CC><b>".$row_rsBeskedInfo['status']."</b></font>"; }
    else
    if ($row_rsBeskedInfo['status'] == 'Chef-reporter') {
    echo " | <font color=#FF00CC><b>".$row_rsBeskedInfo['status']."</b></font>"; }
    else
    if ($row_rsBeskedInfo['status'] == 'Reporter') {
    echo " | <font color=#33CC00><b>".$row_rsBeskedInfo['status']."</b></font>"; }
    else
    if ($row_rsBeskedInfo['status'] == 'Supporter') {
    echo " | <font color=#33CC00><b>".$row_rsBeskedInfo['status']."</b></font>"; }
    else
    if ($row_rsBeskedInfo['status'] == 'Guld') {
    echo " | <font color=#FF9900><b>".$row_rsBeskedInfo['status']."</b></font>"; }
    ?>&nbsp;den&nbsp;<?php echo $row_rsTagwall['tid']; ?>
    </td>
  </tr>
  <tr>
    <td><?php
    $erstatning = $row_rsOrdfilter['erstatning'];
    mysql_select_db($database_hhmedia, $hhmedia);
    $query_rsOrdfilter_ord = "SELECT * FROM ordfilter_ord";
    $rsOrdfilter_ord = mysql_query($query_rsOrdfilter_ord, $hhmedia) or die(mysql_error());
    $totalRows_rsOrdfilter_ord = mysql_num_rows($rsOrdfilter_ord);
    while ($row_rsOrdfilter_ord = mysql_fetch_assoc($rsOrdfilter_ord))
    {
    $replace_ord = $erstatning;
    $regpattern = "/\b".$row_rsOrdfilter_ord['ord']."\b/i";
    $besked = preg_replace($regpattern, $replace_ord, $besked);
}
      echo $besked;
?>
    </td>
  </tr>
</table>

<table width="100%"  border="0" cellspacing="0" cellpadding="0">
<tr><td style="height:8px;"></td>
</tr></table>
<table width="100%"  border="0" cellspacing="0" cellpadding="0">
<tr><td style="background-color:#4B4B4B; height:1px;"></td>
</tr></table>
<table width="100%"  border="0" cellspacing="0" cellpadding="0">
<tr><td style="height:8px;"></td>
</tr></table>

<?php
}
?>
Avatar billede zynzz Praktikant
11. juli 2006 - 16:02 #11
Kan du ikke lige skrive link, så jeg kan se hvad du mener...
Avatar billede macus Nybegynder
11. juli 2006 - 16:04 #12
har du en email jeg kan skrive linket til? ;)

det duer nemlig ikke forkerte personer får fat i linket endnu :)
Avatar billede zynzz Praktikant
11. juli 2006 - 16:21 #13
Okay, så forklar det lidt nærmere...
Avatar billede macus Nybegynder
11. juli 2006 - 16:33 #14
www.about-ns.dk har de et eksempel på det jeg skal bruge ang. skift af sider.. i deres nyhedssystem..
Avatar billede zynzz Praktikant
11. juli 2006 - 16:58 #15
Ja men det er også sådan et jeg har lavet ?
Avatar billede macus Nybegynder
11. juli 2006 - 17:40 #16
Ja der er bare fejl i ;)

istedet for at udskrive 10 tagwall beskeder, udskriver den kun 1 og gentager den 10 gange.
Avatar billede zynzz Praktikant
11. juli 2006 - 17:58 #17
$res=mysql_query("SELECT * FROM dintabel ORDER BY id DESC LIMIT $side_nr, $pr_side");

Jeg kan ikke huske om $side_nr skal være samlet sum eller bare 0... S:
Avatar billede zynzz Praktikant
16. juli 2006 - 09:27 #18
lukke her ?
Avatar billede macus Nybegynder
16. juli 2006 - 23:43 #19
Det funker bare ikke =/ =/
Avatar billede zynzz Praktikant
17. juli 2006 - 16:51 #20
Kan du ikke lige give mig link til den så ? :)
Avatar billede zynzz Praktikant
29. december 2007 - 11:19 #21
Respons tak... :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester