Abhängigkeit mehrerer Variablen (Checkbox, Pulldown)

jwilhelm

Grünschnabel
Ich habe ein Formular mit zwei Checkboxen ("Mann", "Frau") und ein Pulldownmenu, in dem die Nationalität ausgewählt werden kann (Werte: "deutsch", "englisch", "französisch"... etc).
Auf der Folgeseite soll sich per PHP ein Satzgefüge erstellen, an dessen Anfang die Person bestimmt wird, so wie sie "ausgewählt" wurde :

"Ein Engländer, .... " (nach vorherigem Ankreuzen von "Mann" und "englisch")
"Eine Deutsche,..." (nach vorherigem Ankreuzen von "Frau" und "deutsch")
etc

Ich denke, das ist eine relatif einfache "if-" Kombination, aber... HEEEELPPPP :-( .... ich komm einfach nicht drauf.

Danke für jede Hilfe

J. Wilhelm
 
Hi,
wenn ich das richtig verstanden habe, wolltest du es ungefähr so machen:
Vielleicht entspricht es ja deinen Vorstellungen. Allerdings ist diese Methode sehr aufwendig, wenn man noch mehrere Länder hinzufügen möchte. Vielleicht kennt jemand noch eine bessere Idee. Ansonsten nimmst du halt das Skript. Habs getestet, funktioniert einwandfrei ;).

PHP:
<?
if(isset($send)) {
  if(($check == "mann") && ($natio == "engl")) {
    echo "Ein Engländer,...";
  }
  if(($check == "mann") && ($natio == "deu")) {
    echo "Ein Deutscher,...";
  }
  if(($check == "frau") && ($natio == "deu")) {
    echo "Eine Deutsche,...";
  }
  if(($check == "frau") && ($natio == "engl")) {
    echo "Eine Engländerin,...";
  }
  echo "<br><br>";
  echo "<a href='$PHP_SELF'>neue Auswahl</a>";
} else {
?>
<form action="<? echo $PHP_SELF; ?>" method="post" name="form">
Mann: <input type="radio" name="check" value="mann"><br>
Frau: <input type="radio" name="check" value="frau"><br>
<br>
<select name="natio" size="1">
 <option selected>Bitte auswählen!</option>
 <option value="engl">englisch</option>
 <option value="deu">deutsch</option>
</select>
<br>
<input type="hidden" name="send" value="send">
<input type="submit" name="submit" value="abschicken">
<?
}
?>

Mfg Shorty
 
klasse !

VIELEN HERZLICHEN DANK, das funktioniert bestens. :p
Ja, vielleicht geht's auch weniger umständlich(auch wenn ich dieses Script schon einfach finde), aber es ist nicht notwendig - ich habe höchstens 6 Nationalitäten zur Auswahl.

J. Wilhelm
 
Man sollte aber schon auf die superglobalen Arrays $_POST und $_GET zurückgreifen (oder $_REQUEST wenn man faul ist) und nicht der Bequemlichkeithalber da so nen "Mist" fabrizieren, der auf keinem anständigen Internetserver mehr laufen wird :rolleyes:

Zumindest das Ein/e (wie ist noch gleich die grammatikalische Bezeichnung dafür ? Deutsche Grammatik war zumindest in der Theorie noch nie meine Stärke) über ein einfaches Teil (mir fällt grade nix besseren ein *g*) lösen.
PHP:
$output = "";
if($_REQUEST['radiobutton'] == "m") { $output = "Ein"; }
elseif($_REQUEST['radiobutton'] == "f") { $output = "Eine"; }
//wie du siehst, spiele ich darauf an, dass man radiobuttons, die zu einer Gruppe
//gehören verwenden solltest, da du so über den Namen der Gruppe darauf zugreifen
//kannst (glaube ich zumindest) und nicht in Verlegenheit kommst, dass jemand 
//Mann und Frau ankreuzt. Das wäre nämlich bei Checkboxen möglich.
//Im folgenden kannst du dann die Variable beliebig mit .= erweitern.
//-
//Obwohl mir fällt grade auf, da muss man dann auch nochmal die Fallunterscheidung
//ob Mann oder Frau betreiben also war meine Idee von oben gar nicht mal so
//sinnvoll ....
 
Nun, für mich als relativen Anfänger ist es aber in jedem Fall schonmal eine Hilfe :) - und es kommen wohl noch mehr Fragen.. Merci also.
 
was heisst hier "Mist"? Also bis jetzt hatte ich noch nie Probleme damit, wenn ich so ein Skript verwendet habe. Ich habe in meinem ersten Text auch geschrieben, dass es alles einwenig einfach ist, aber wenn es läuft, wieso sollte man soetwas dann nicht auch nutzen?

Mfg Shorty
 
Weil register_globals auf allen guten Webservern auf off steht und auch auf off bleiben sollte. und dann geht $feldname nicht sondern nur $_GET['feldname'] oder $_POST['feldname'] jeh nach Übertragungsart. ;)

Darum sollte man so einen Quark nicht machen :-)
 
Soweit ich weiss, ist Register_Globals ein Teil von Session Settings. Außerdem ist es meines Wissens so, dass GET und POST als Variablen in Form eines Hash-Arrays gesendet werden.

Mfg Shorty
 
Soweit ich weiss, ist Register_Globals ein Teil von Session Settings.
Das ist definitiv falsch. register_globals sagt lediglich etwas darüber aus, ob die Variablen, die eigentlich nur in den superglobalen Arrays $_POST und $_GET enthalten sind auch noch als eigenständige globale Variablen definiert werden. Und das stellt ein großes Sicherheitsloch dar.
 
Zurück