Sprungmarken mit PHP

  • Hallo zusammen,

    hab mal wieder eine Frage und zwar Habe ich eine Button "Endbetrag berechen" wenn ich diesen Drücke baut er wie gewünscht die Seite wieder neu auf.
    Aber er springt wieder an den Anfang der Seite.

    Meine Frage nun wie kann ich angeben wo der angezeigte Bildausschnitt beginnen sitzt soll?

    Vielen Dank schon mal.

    Mfg Oli

  • Irgend wie setze ich das Falsch um!?

    Zu meinen Verständnis:

    Punkt 1. das füge ich dort ein wo das Bild inspringen soll. Oder?

    Punkt 2. Wo kommt das hin?

    Ich habe diese Formtag und um Postdaten zu senden benötige ich diese Aktion.
    <form name="form1" action="test.php" method="post">

    Wo muss ich nun <form action="<?=$PHP_SELF.'#bottom'?>"> einfügen?

    Hab mehre Möglichkeiten probiert, aber ohne Erfolg.

    Oli

  • Klasse, DarkSyranus jetzt funktioniert es.

    Nur habe ich ein Problem, ich habe dort 3 Buttons innerhalb diesem Formtag und jetzt springt er bei jedem zu dieser Position. Hm, ...

    Gibs da noch eine Möglichkeit?

    Gruß Oli

  • Hm, ...

    Also mein Formular besteht aus einer ziehmlich großen Tabelle.
    Vor der Tabelle hab ich:

    <form name="form1" action="<?=$DateiName?>" method="post">
    ...
    <input type="submit" name="pruefen" value="<?=$Zurueck?>
    ...
    <input type="submit" name="pruefen" value="<?=$Senden?>" width="30">
    ...
    <td align="center"><input type="submit" name="pruefen" value="<?=$Zurueck?>" width="30">
    ...
    <input type="submit" name="pruefen" value="<?=$Berechnen?>">
    ...
    und am Ende der Tabelle:</form>

    Über Abfragen bekomme ich raus welcher Button gedrückt wurde.

    So und nur wenn ich den Button Berechnen drücke möchte ich das Anspringen der Sprungmarke.

    Eigentlich könnte ich das doch in PHP einklammern? If ($berechnen) {} else {}

  • Hm, das leigt daran, dass es so nicht ganz geht.
    Bei jedem deiner Buttons wird das Formular abgesendet und somit http://www.example.com#bottom aufgerufen.

    Dass kannst du allein mit HTML nicht beieinflussen, dazu müsstest du Javascript nehmen und beim Button berechnen eine Funktion auslösen, die die Zieladdrese des Formulars ändert.

    Dabei kann ich dir jedoch nich behilflich sein, da mein Javascript nicht so gut ist.

    Alternativ lässt sich eine Zwischenseite schalten, die es dann macht
    -> Die Daten werden an ein PHP Scrip gesendet und in einem weiteren Formular ausgegeben.
    -> Je nachdem welcher Button gedrückt wurde, hat das Formular eine entsprechende Addresse (entweder mit oder ohne #bottom)
    -> Das Formular wird via Javascript beim Laden der Seite abgesendet.

    Eine dritte Möglichkeit wäre es <a name="bottom"></a> nur auszugeben, wenn der richtige Button gedrückt worden ist.
    [code]if($_POST['prufen'] == $berechnen) echo '<a name="bottom"></a>';

    Welche du nimmst ist dir überlassen.

  • Vielen DarkSyranus, ja genauso hab ich es gelöst.

    Ich hab eine Variable erstellt die nur True ist wenn der Berechenen Button gedrückt wird.

    Und dann ändere ich den Tag so:

    <? if ($Springen) { ?>
    <form action="<?php echo $_SERVER['PHPSELF']; ?>#marke" metheod="POST" name="from1">
    <? } else { ?>
    <form name="form1" action="<?=$DateiName?>" method="post">
    <? } ?>


    Vielen Dank noch mal, ;) Gruß Oli