Avatar billede Jakie Juniormester
09. januar 2013 - 18:14 Der er 9 kommentarer og
1 løsning

Url rewrite i pagination - få paginations side?

Hej.

Jeg har et paginationsystem, hvor jeg henter paginationsiden med:

if ($_GET['page'])
{
// et eller andet.
}

Hvor url'en  er user?page=sidetallet.

Jeg vil istedet gerne have at url'en er user/page/sidetallet.

Jeg har i min .htaccess fil skrevet følgende:
RewriteRule ^user/([a-zA-Z0-9_-]+)/([0-9]+)\.html$ user.php?page=$2

Jeg kan så hente url'en ved $url = isset($_GET['url']) ? $_GET['url'] : null;

hvor jeg får  adminstrator/user/page/2.

Spørgsmålet er egentligt bare, hvordan jeg får lavet url'en om?
Avatar billede olebole Juniormester
09. januar 2013 - 21:20 #1
<ole>

Hvordan får du lavet URL'en om - hvor?

/mvh
</bole>
Avatar billede Jakie Juniormester
10. januar 2013 - 10:09 #2
Ja eller hvordan jeg skal gøre?

Eller hvad er spørgsmålet? :D
Avatar billede olebole Juniormester
10. januar 2013 - 10:54 #3
Ja, præcis: Hvad er spørgsmålet?  =)
Avatar billede Jakie Juniormester
10. januar 2013 - 12:02 #4
Jeg må prøve igen - det er nok min begrænsende viden, der begrænser mig i at formulere spørgsmålet ordentligt.

Mit spørgsmål et egentligt bare hvordan jeg får ændet min url fra at være user?page=side-tallet-af-pagination til user/page/side-tallet-af-pagination ? Hvor side-tallet-af-pagination kunne være 1 eller fx 3.

Derudover kan jeg oplyse at jeg selv har prøvet på det igennem htaccess rewrite, hvor jeg har skrevet(Måske det skal laves om?):
RewriteRule ^user/([a-zA-Z0-9_-]+)/([0-9]+)\.html$ user.php?page=$2

For at min pagination function skal fungere ordentligt skal funktionen vide, hvilken nuværende side, der er eksekveret. Altså om det page=1 eller page=5 osv.

Lige nu gør jeg det igennem sådan her, da url'en er user?page=side-tallet-af-pagination:

                        if (!$_GET['page'])
            {
                $page = 1;
                        $minimum = 0;
                $counts = ceil($total_values / $per_page);
            }
            else
            {
                  $page = $_GET['page'];
                  $minimum = $per_page * $page - 10;
                  $counts = ceil($total_values / $per_page);
            }

Men hvordan henter jeg pagination-side-tallet, hvis url'en er user/page/2?

Jeg har prøvet igennem $url = isset($_GET['url']) ? $_GET['url'] : null;
hvor $url er lig user/page/pagination-side-tallet - dette kan jeg ikke bruge, da det er en streng og ikke et tal.

Hvordan får jeg hentet pagination-side-tallet ud?

Gav det mening? :D
Avatar billede olebole Juniormester
10. januar 2013 - 12:21 #5
Det lyder som en meget sær opbygning - hvis ikke en decideret designfejl. Anyway, så kan du vel gøre noget i stil med:

$s = 'user/page/2';
$a = explode('/', $s);
echo end($a);
Avatar billede Jakie Juniormester
10. januar 2013 - 15:31 #6
Tak Ole.

Hvordan ville du ellers opbygge det eller designe det?
Avatar billede olebole Juniormester
10. januar 2013 - 19:58 #7
Aner det ikke. Jeg forstår ikke, hvad du skal bruge den kode til, jeg skrev  =)
Avatar billede Jakie Juniormester
19. januar 2013 - 22:02 #8
Skal jeg lukke ved at ligge et svar? :)
Avatar billede olebole Juniormester
20. januar 2013 - 18:50 #9
Jeg samler i hvert fald ikke point  =)
Avatar billede Jakie Juniormester
21. januar 2013 - 16:32 #10
Så lukker jeg :)
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