hash(#) in url bij webshops
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
En hoe dan?, ik zoek me rot
Roel van de Water op 08/05/2011 22:34:20:
Dat kun je met JavaScript en AJAX doen.
http://www.w3schools.com/ajax/
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)
1
2
3
4
2
3
4
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?route=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?route=$1 [QSA,L]
Maak in dezelfde map een index.php bestand en zet daarin:
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
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.)
@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?
heb je rewrite aangezet in httpd.conf?
zet en in de url mijnwebsite.nl/zoeken dan echot hij :"zoeken" dus de rewrite doet het wel alleen lijkt het dat het niet doet
Als ik in mijn php bestand Gewijzigd op 09/05/2011 17:51:33 door Nick Dijkstra
niet goed gekeken, $_SERVER['route'] kan helemaal niet.
kijk ook eens naar deze tutorial
Gewijzigd op 09/05/2011 18:17:21 door Victor -
moet inderdaad zijn
Mijn excuses :(
Doet ie het nu wel dan?
Nee :( er komt dan alleen maar "zoeken" te staan en niet wat achter het hekje(#) staat
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.
En met Javascript/Ajax of htaccess dan? Want andere sites kunnen het toch ook?
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.
voorbeeld: http://www.website.nl/index.php#page=1&price_max=100
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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;
}
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;
}
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.)
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.
@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
klik
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 Edit:
dat doet hij trouwens met javascript kijk maar in de bron;)
Gewijzigd op 09/05/2011 20:52:30 door Victor -
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.