ich habe eine index.php dabei mit einer html select auswahl. dieser select wert wird mit onChange und javascript funktion, wieder an die index.php weitergeleitet. index.php?land=deutschland
mit $_post(„land“) bekomme ich aber eine fehlermeldung „undefined“
wenn die Variable bzw. dass Select Feld nicht mit dem Formular abgeschickt wird sondern als Parameter an die URL angehängt, dann ist $_POST natürlich nicht gefüllt, sondern $_GET[‚land‘].
$_POST[‚land‘] wäre es nur, wenn man es nicht über die URL übergibt, sondern das Formular mit submit() abschickt.
an diesem konstrukt wage ich auch zu erkennen, dass du irgendwo mal jquery-code gesehen hast. konsultiere dazu bitte die jquery api docs unter http://api.jquery.com/jquery.post/
mit $_post(„land“) bekomme ich aber eine fehlermeldung
„undefined“
$_POST ist ein Array, also musst du es mit $_POST[„land“] abrufen, und nicht mit runden Klammern. Runde Klammern funktionieren nur bei Funktionen und anderen Sprachkonstrukten, nicht aber bei Arrays, denn das sind Listen von Variablen. Theoretisch ist es schon möglich, dass $_post() eine Funktion ist, aber sinnvoller und unproblematischer ist es allemal mit eckigen Klammern.
Also ganz spontan würde ich sagen:
Es muss $_GET[„land“] heißen, weil $_POST nur bei Formularen mit der METHOD=POST verwendet wird. Hängst Du den Parameter an die URL wird GET verwendet.
danke! also wie bei asp gibt es auch request. das heist ich kann lange zeichen usw… verwenden.
und wenn ich beim startanfang mit request abfrage, da ist der wert noch nicht da und ich bekomme eine fehlermeldung. kann man das mit einer if abfrage unterdrücken? if request(„land“) = TRUE $daten = request(„land“) else $daten = „“;
Lösung:
Du hast $_GET[‚land‘] mit $_POST[‚land‘] verwechselt.
Erklährung: $_GET[‚meinevar‘]
liest den wert meinevar in der url aus
(bei index.php?meinevar=XYZ ist $_GET[‚meinevar‘] „XYZ“)
$_POST[‚meinevar‘]
liest den wert meinevar aus einem formular aus
(bei
ist $_POST[‚meinevar‘] entweder „XYZ“ oder eben das was der
user im passwort-feld eingetragen hat (die value ist quasi die voreinstellung))
wenn du sonst noch dazu ne frage hast mail mir einfach: [email protected]
Mit freundlichen Grüßen,
denkenreden
ps:
ein beispiel für das mit get: http://denkenreden.gartenzwergplastinat.de
dort wird der header und der footer immer automatisch eingesetzt
und das /?page= bestimmt eben den seiteninhalt
(Die Seite aber bitte nicht mit inetexplorer aufrufen weil der alles falsch darstellt^^)
Hast du method=„post“ in deinem Formular definiert?
Willst du den ?land=deutschland - Teil abfragen? Der steckt in $_GET[‚land‘].
Hast du den Tippfehler bemerkt? Es müsste $_post[‚land‘] heissen. Mit [] und nicht mit ().