hash(#) in url bij webshops

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nick Dijkstra

Nick Dijkstra

08/05/2011 22:32:11
Quote Anchor link
Wie weet hoe ze het bij webshops(bijv. bij dynabyte) doen met de paginate functie?

Dus http://website.nl/zoeken#page=1&price_max=100 ipv http://website.nl/zoeken?page=1&price_max=100

en dat dan ook het resultaat wijzigt zonder dat de pagina refresht

alvast bedankt
Gewijzigd op 08/05/2011 22:34:43 door Nick Dijkstra
 
PHP hulp

PHP hulp

08/05/2024 20:51:04
 
Roel -

Roel -

08/05/2011 22:34:20
Quote Anchor link
Dat kun je met JavaScript en AJAX doen.
http://www.w3schools.com/ajax/
 
Nick Dijkstra

Nick Dijkstra

08/05/2011 22:35:26
Quote Anchor link
En hoe dan?, ik zoek me rot
 
Ozzie PHP

Ozzie PHP

09/05/2011 00:03:56
Quote Anchor link
Roel van de Water op 08/05/2011 22:34:20:
Dat kun je met JavaScript en AJAX doen.
http://www.w3schools.com/ajax/

Wat bedoel je hier mee???????? Dit is een veel te algemeen antwoord wat nergens op slaat.


Wat je kunt doen is een .htaccess bestandje maken waar je dit inzet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?route=$1 [QSA,L]


Maak in dezelfde map een index.php bestand en zet daarin:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo $_SERVER['route'];
?>


Als je nu een url in typt, bijvoorbeeld:

www.mijnsite.nl/zoeken#pagina1

Dan zou in je browser de string "zoeken#pagina1" moeten verschijnen. Deze string kun je dan in je code weer uit elkaar halen door bijvoorbeeld gebruik te maken van de explode functie.

Hoop dat je hier iets mee kunt.
Gewijzigd op 09/05/2011 00:06:05 door Ozzie PHP
 
Tim selier

tim selier

09/05/2011 08:38:19
Quote Anchor link
ga eens wat spelen met jQuery (http://jquery.com/)
Daar kan je hele simpele ajax acties mee doen.

Ik heb vaak een script die 10 keer per seconde checkt of de hash veranderd is, als dat het geval is, doe je een bijhorende ajax functie.

Dat kan er zo uitzien:
$('#content').load(pag);

Hier vul in de div met id 'content' met de inhoud op pagina 'pag' (pag is var.)
 
Nick Dijkstra

Nick Dijkstra

09/05/2011 17:38:24
Quote Anchor link
@Ozzie bedankt voor je reactie, ik heb het precies zo gedaan als jij zegt alleen er komt geen "zoeken#pagina1" te staan. Hoe kan dit?
 
Victor -

Victor -

09/05/2011 17:42:32
Quote Anchor link
heb je rewrite aangezet in httpd.conf?
 
Nick Dijkstra

Nick Dijkstra

09/05/2011 17:51:09
Quote Anchor link
Als ik in mijn php bestand
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_GET['route']; ?>
zet en in de url mijnwebsite.nl/zoeken dan echot hij :"zoeken" dus de rewrite doet het wel alleen lijkt het dat
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_SERVER['route'];?>
het niet doet
Gewijzigd op 09/05/2011 17:51:33 door Nick Dijkstra
 
Victor -

Victor -

09/05/2011 17:52:49
Quote Anchor link
sorry
niet goed gekeken, $_SERVER['route'] kan helemaal niet.
kijk ook eens naar deze tutorial
Gewijzigd op 09/05/2011 18:17:21 door Victor -
 
Ozzie PHP

Ozzie PHP

09/05/2011 18:22:14
Quote Anchor link
aiiii... sorry!!!

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo $_SERVER['route'];
?>


moet inderdaad zijn

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo $_GET['route'];
?>


Mijn excuses :(

Doet ie het nu wel dan?
 
Nick Dijkstra

Nick Dijkstra

09/05/2011 18:26:40
Quote Anchor link
Nee :( er komt dan alleen maar "zoeken" te staan en niet wat achter het hekje(#) staat
 
Joakim Broden

Joakim Broden

09/05/2011 19:12:25
Quote Anchor link
Als je het met PHP doet moet de # teken al in de url staan tijdens de load. Als je dat na de load pas de # in de url zet kan PHP hem niet vinden/zien.
 
Nick Dijkstra

Nick Dijkstra

09/05/2011 19:21:28
Quote Anchor link
En met Javascript/Ajax of htaccess dan? Want andere sites kunnen het toch ook?
 
Ozzie PHP

Ozzie PHP

09/05/2011 20:02:20
Quote Anchor link
Hmmm... ik heb het even getest en inderdaad krijg je het hekje en wat erachter staat niet te zien. Vreemd... dan weet ik het ook niet om eerlijk te zijn.

Wat je wel kunt doen op die manier is dit:

http://website.nl/zoeken/pagina/1/maximum-prijs/100

Je kunt dan hele mooie url's maken.
 
Victor -

Victor -

09/05/2011 20:14:41
Quote Anchor link
of maak zelf een javascript functie
voorbeeld: http://www.website.nl/index.php#page=1&price_max=100

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php

var hash = getUrlVars(); alert(hash['page']); // geeft 1
alert(hash['price_max']); // geeft 100
function getUrlVars()
{
    var
vars = [], hash;
    var
hashes = window.location.href.slice(window.location.href.indexOf('#') + 1).split('&');
 
    for(var i = 0; i < hashes.length; i++)
    {

        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }

 
    return vars;
}
 
Roel -

Roel -

09/05/2011 20:24:01
Quote Anchor link
Tim selier op 09/05/2011 08:38:19:
ga eens wat spelen met jQuery (http://jquery.com/)
Daar kan je hele simpele ajax acties mee doen.

Ik heb vaak een script die 10 keer per seconde checkt of de hash veranderd is, als dat het geval is, doe je een bijhorende ajax functie.

Dat kan er zo uitzien:
$('#content').load(pag);

Hier vul in de div met id 'content' met de inhoud op pagina 'pag' (pag is var.)


Is dit een grap? Tien keer per seconde?
Wat nou als er vijf bezoekers op je website surfen, dan heb je 50 requests per seconde.

Ik denk niet dat je hosting daar blij mee is.
 
Nick Dijkstra

Nick Dijkstra

09/05/2011 20:28:15
Quote Anchor link
@Ozzie php, ik wil graag iets anders in de pagina laden zonder dat de pagina gerefresht wordt

@Victor X, Goed script! Het werkt idd. Alleen hoe krijg ik dat ik zonder te refreshen van de pagina een andere hash kan laden?

Toevoeging op 09/05/2011 20:36:49:

Kijk hier maar eens: http://dynabyte.nl/zoeken#price[min]=0&price[max]=1600&q=touch&sort_field=n&sort_dir=d&page=6 en ga maar naar de volgende pagina, of vul een ander getal in page=6. dan springt ie naar een andere pagina zonder de pagina te refreshen
Gewijzigd op 09/05/2011 20:37:55 door Nick Dijkstra
 
Victor -

Victor -

09/05/2011 20:51:15
Quote Anchor link
de pagina refresht wel degelijk, ik denk ook niet dat het mogelijk is om je pagina zonder te refreshen te vernieuwen of bedoel je iets als dit klik

Edit:
dat doet hij trouwens met javascript kijk maar in de bron;)
Gewijzigd op 09/05/2011 20:52:30 door Victor -
 
Nick Dijkstra

Nick Dijkstra

09/05/2011 21:02:18
Quote Anchor link
Ik heb het zo ongeveer(zonder te refreshen!)
http://bit.ly/mzY3sE

verander ook het woordje in de url
 
- SanThe -

- SanThe -

09/05/2011 21:02:38
Quote Anchor link
Nick Dijkstra op 09/05/2011 20:28:15:
Kijk hier maar eens: http://dynabyte.nl/zoeken#price[min]=0&price[max]=1600&q=touch&sort_field=n&sort_dir=d&page=6


Wat een verschrikkelijk irritant gedoe daar zeg. Zoiets klik ik zo snel mogelijk weer dicht.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.