Jo,
jag skulle behöva skicka med ett ankare till en URL i en header("Location: ") jag gör, men det funkar inte av nån anledning, är det nån som har nån idé om varför?
header("Location: /hej.php?oj=1#id=2");
blir bara:
/hej.php?oj=1
och
header("Location: " . urlencode("/hej.php?oj=1#id=2"));
blir bara soppa, sidan laddas inte alls...
Jamen det är klart att det funkar med Javascript, men det var ju inte frågan! Jag vill undvika att skicka webläsaren till ett extra ställe, det skulle vara tusen gånger bättre att skicka den direkt till rätt plats. Frågan är ju varför det inte funkar att skicka med ankare i header().
Thomson: Du har fel. :) Det är rätt enkelt. En header("Location:") laddar inget dokument utan skriver ut en HTTP-header som talar om för webläsaren att dokumentet ligger på ett annat ställe. Därför behöver man aldrig ladda nån HTML eller nåt Javascript, och man slipper "hoppa" en extra gång. Testa själv! Med ditt exempel måste man först ladda en sida som innehåller ditt Javascript, som sen i sin tur laddar den sida jag verkligen vill till. Du får två stycken "klick" i Internet Explorer eftersom det blir två dokument som laddas. Fult, tycker jag!
Matte: Konstigt. När jag försöker försvinner helt enkelt "#"-tecknet och allt som står efter. Jag måste testa lite mer, men det kanske kan bero på webläsare? Själv använder jag MSIE 6 under WinXP. Vad använder du?