Seitenaufruf mit Header

Hallo zusammen,

wollte eine Auswahlliste erstellen, die eine Seite aufruft, sobald auf einen Eintrag geklickt wird. Das soll mit header realisiert werden.

">
12

<?php header("Location: {($_POST[select])}");?>

Soweit ist alles fertig. Aber ich bekomme immer die Fehlermeldung: „Cannot modify header information“.

Wo liegt der Fehler?

Gruß

Grüße Euch,
Sie haben Allgemein einen Logik Fehler,

  1. Erst Header danach alles restliches.
  2. Soweit haben Sie Header „Redirect“ brauchen Sie Ihr HTML Code nicht.
  3. Am besten alles anders Strukturieren

Hallo Alex,

erste Zeile:


<?php if (isset ($_POST["select"])){header( "Location: ".$_POST["select"]) ; } ?>

dann das HTML

und ??

onclick=„this.form.submit();“>

Willst Du wirklich bei jedem click … also ohne Auswahlmöglichkeit … das Formular versenden??

Fehler erkannt?

mfg
Klaus

Danke für die Antwort!

Jetzt klappt es! Aber mich wundert es, dass ich die if-Anweisung wirklich ganz nach oben setzen muss.
Kannst du mir erklären, warum dass sein muss?

Willst Du wirklich bei jedem click … also ohne
Auswahlmöglichkeit … das Formular versenden??

Ja. Es sollen mehrere Seiten in einer Navigationsleiste untergebracht werden und per Klick sofort geladen werden.

Gruß

Jetzt klappt es! Aber mich wundert es, dass ich die
if-Anweisung wirklich ganz nach oben setzen muss.

kannst Du mir erklären

  • warum mit if
    und
  • warum Du vorher keinen Wert aus dem $_POST-Hash erhalten hast?

Kannst du mir erklären, warum dass sein muss?

die function header() schickt HTTP-Anfangsinformationen an den Browser.
z.B. „Location : URL“ löst einen redirect (302) aus.
steht das im HTML-Bereich, dann wertet der Browser das nicht mehr aus.

im HTML und mit javascript geht es mit:
window.location.href=URL

Ja. Es sollen mehrere Seiten in einer Navigationsleiste
untergebracht werden und per Klick sofort geladen werden.

so … so … eine Navi-Leiste kann man das aber wirklich nicht nennen :smile:)

da kannst Du soviele 's einfügen wie Du willst, es wird immer nur der Wert der 1. option vom Formular gesendet.
Der User hat gar keine Chance etwas anderes auszuwählen, weil der onclick-event sofort feuert.

mein Vorschlag:

  • in der 1. option steht z.B.: „Ziel auswählen“ und die URLs in den folgenden optionen
  • statt onclick nimmst du onchange

Hallo nochmal!

kannst Du mir erklären

  • warum mit if
    und

  • warum Du vorher keinen Wert aus dem $_POST-Hash erhalten
    hast?

Nein.

mein Vorschlag:

  • in der 1. option steht z.B.: „Ziel auswählen“ und die URLs
    in den folgenden optionen

  • statt onclick nimmst du onchange

Mit onchange geht’s besser :smile: Und wenn ich noch den ersten Eintrag mit

Ziel auswäen

programmier, dann klappt auch die Navigation :smile:

Danke!