PHP HTML Select onChange $_POST

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“

Versuches es mal mit $_REQUEST[‚land‘] oder $_GET[‚land‘]

REQUEST beinhaltet beide ($_POST & $GET)

Variablen in der URL (so wie Du das machst, stehen in der GET Variable.

Hoffe ich konnte Dir helfen
Gruß
Sven

Hallo,

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.

Viele Grüße

dein problem ist nicht php, sondern javascript.

bitte informiere dich, welche objekte/funktionen in javascript in (modernen) browsern definiert sind: http://de.selfhtml.org/javascript/objekte/index.htm

„undefined“ sagt dir, dass die funktion $_post() schlicht undefiniert ist.
siehe dazu: https://developer.mozilla.org/en/JavaScript/Referenc…

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/

  • b

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.

Hallo!

der Aufruf „index.php?land=deutschland“

füllt das Array „$_GET“, nicht POST. Also $_GET[„land“].

Außerdem bei Arrays die Elemente mit eckigen Klammern aufrufen, nicht mit runden Klammern.

Viele Grüße,
Markus

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.

Gruß Lars

abgesehen davon, du brauchst evtl. folgendes:

onchange=„window.location=‚index.php?land=‘+this.value;“

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 = „“;

zum Thema $_REQUEST: http://php.net/manual/de/reserved.variables.request.php

Was das „warning“ angeht:

if(!empty($_REQUEST[‚land‘])){
//land vorhanden
}else{
//land nicht vorhanden
}

Gruß
Sven

vielen dank!

kann man diese variable auch für array verwenden? z.b

$Auswahl_Land[$land][i] ?

ich habe folgende arrays

$Auswahl_Land[‚Deutschland‘][1] = „Berlin“;
$Auswahl_Land[‚Deutschland‘][2] = „Hamburg“;
$Auswahl_Land[‚Deutschland‘][3] = „Frankfurt“;

High,

die Frage verstehe ich jetzt nicht so ganz.
Versuch das mal bitte genauer zu erklären.

Interessant. Und was ist jetzt die Frage?

„Fragezeichen-Argumente“ (?x=1&y=2 …) befinden sich in $_GET.

Hallo max12neu,

$_POST[„land“]

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^^)

Ich denke das wir auch in der vatiable $_GET übergeben.
oder wie sieht der src-code aus.

die Weiterleitung ist mit der GET Methode, du musst also $_get verwenden.

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 ().

Ich hoffe, damit ist dir geholfen!

Grüße,

Lars

Hallo,

Nehme einfach $_POST[„land“].

Grüße
Tom