Anker mit übergeben

schecker

Erfahrenes Mitglied
Hy habe folgendes Problem:

ich programmiere gerade einen Webshop. Nun habe ich die Funktion des " in den Warenkorb legens" programmiert.
AIn die Seite wo ich die Artikel anzeigen lasse habe ich schon Anker eingebunden.
Nun habe ich folgendes vor: Ich will den Artikel in den Warenkorb legen und dann wieder an die Stelle springen wo sich der Artikel befindet. --> also nutzt man ja Anker.
In dem Script welches die Artikel in den Warenkorb legt, kommt am ende eine Switch-Anweisung
PHP:
switch($from)
{
case "1":
$url="show.php?set=$set&kat=$kat#$artikelid";
break;

case "2":
$url="show.php?set=$set&kat=$kat&ukat=$ukat#$artikelid";
break;

case "3":
$url="details.php?art=$artikelid#$artikelid";
break;

case "4":
$url="suchen.php?tag=2#$artikelid";
break;
}

header("location:$url");

Aber der Anker wird irgenwie ignoriert!

Kann mir einer sagen warum?

Danke schecker
 
Es ist die Natur des HTTP, dass der Fragmentbezeichner nicht an den Server übermittelt wird.

Aber da ja Artikelnummer mit übergeben wird, kannst du ja anhand diesem einen Anker setzen, auf den du dich in der anschließenden Weiterleitung beziehst.
 
also müsste ich am Anfang der Seite die Artikelid auswerten und dann zum Anker springen?
Oder verstehe ich das jetzt falsch?

gruß schecker
 
Ja, genau. Weise jedem Artikel einen Anker zu und springe anschließend zu dem des hinzugefügten Artikels.
 
Also ich glaube, der Fehler muss woanders liegen, das sollte eigentlich so funktionieren :confused:
Ist das irgendwo online, damit man es mal betrachten kann?
 
Verpasse einfach alle Artikel einen eindeutigen Anker, der die Artikelnummer enthält. Dann kannst du im Warenkorb-Skript nach erfolgreicher Aktion dahin zurückspringen.
Ein einfaches Beispiel:
PHP:
<p id="artikel-12345">Artikel „Bla Bla“
	<form action="artikel-zum-warekorb-hinzufügen.php" method="post">
		<input type="hidden" name="artikelnummer" value="12345">
		<input type="hidden" name="url" value="<?php echo htmlspecialchars($_SERVER['REQUEST_URI']); ?>">
		<input type="submit" value="zum Warenkorb hinzufügen">
	</form>
</p>
PHP:
// Artikel zum Warenkorb hinzufügen

header('Location: http://'.$_SERVER['SERVER_NAME'].$_POST['url'].'#artikelnummer'.$_POST['artikelnummer']);
Dem Benutzer sollte allerdings auch gesagt werden, dass der Artikel hinzugefügt wurde.
 
So habe das nun so gemacht, aber es passiert niechts. Habe es auch mit
HTML:
<a name="artikel-12345"></a>
aber auch da passiert nichts.
Der Anker steht aber auch nicht opben in der Adsresszeile, obwohl ich es eigentlich will:confused: :confused: :confused:
Und auch wenn ics direkt in die Adresszeile eingebe geht einfach nichts

Gruß schecker
 
Zuletzt bearbeitet:
Zurück