Länderauswahl in Dropdown-Menue

nostradamos

Mitglied
Hallo,
bin ein Anfänger in Sachen PHP und habe es gerade so geschafft ein Warenkorb zu basteln. Nun fehlt aber noch die Landesauswahl dabei. Habt ihr ne Ahnung, wie ich das machen kann?
Also am besten wie bei eigentlich allen Seiten ein Dropdownmenue mit moeglichen Landern, Sagen wir mal Deutschland( als standard im Anzeigenfenster) England, Schweiz. Wie kann ich das erzeugen? Am besten waere, wenn das ausgewählte Land dann in eine Variable gepackt wird, da ich es fuer eine if Schleife benoetige.

Danke Leute
 
ehm eigendlich is das nen normaler HTML code:
HTML:
<select name="land">
<option>Land1</option>
<option>Land2</option>
...
</select>
 
Ergänzung zu Tualex:
Das kommt dann als $_GET['land'] oder $_POST['land'] in Deinem Skript an.
Da Du nichts näheres geschrieben hast, gehe ich davon aus, dass Du Deinen Warenkorb mit Sessions oder Cookies realisierst?
Da schreibst Du dann das Land mit rein, oder, wo Du sonst den Warenkorb für den User speicherst.

Gruß hpvw

PS: Es gibt keine if-Schleife! Den Begriff lese ich in letzter Zeit leider häufiger in Threads. Das ist ein if-Block oder if-Anweisung oder if-Sonstwas, aber keine Schleife.
Schleifen werden anhand einer Bedingung ein, kein oder mehrmals durchlaufen (for foreach while), if-Blöcke jedoch nur maximal einmal "durchlaufen".
 
Hm, oder die verfügbaren Länder aus der Datenbank holen, in eine While Schleife rein und dann ausgeben lassen:

PHP:
echo "<select name=\"land\">\n";

while ($data = mysql_fetch_array($qry)) {

    echo "<option value=\"".$data['land']."\">".$data['land']."</option>\n"; 

}

echo "</select>\n";
 
Hallo,

Danke fuer eure schnellen Antworten.
Die Seite ist folgender Massen aufgebaut, bisher nur auf meinem PC deshalb kann ich euch leider keinen Link geben:
Ganz normale statische Seiten, bis hin zu den Artikeln. Diese sind an sich ebenfalls statisch, nur haben sie ein Dropdown-menue um Die grosse das Artikel auszuwaehlen und dann den Artikel in den Warenkorb zu packen. Das wird mit Sessions erledigt. Dann im Warenkorb werden alle Artikel angezeigt. Wenn eine bestimmte Sorte an Artikeln dabei ist, dann werden die Versandkosten angehoben, ansonsten bleiben sie bei 4,90 Euro. Dies habe ich dur einen If-Block ;) erledigt. Nun soll er Kunde dort eben noch sagen aus welchem Land er kommt. Denn wenn er nicht aus D kommt, dann werden die Versandkosten eben nochmal erhoeht. Automatisch! Ich will das eigentlich nicht ueber ne extra Tabelle machen.
@Tualex: ist das php? Es wird nix ausgegeben. Egal ob ich es als html oder php behandle.
Ausserdem wollte ich gerne das ausgewaehlte in ne Veriable gepackt habe, so dass ich es dann an das darauf folgende Adressenformular mitsenden kann.

Gruezi
 
Das von Tualex ist html.
Es ist der Teil eines Formulars.
Wenn dieses abgesendet wird ist eine der von mir genannten Variablen mit dem Land belegt.
Jan hat das von Tualex (warum will ich immer Tualeg schreiben? Muss wohl ein freudscher Verschreiber durch einen dt. Autohersteller sein) dynamisch gemacht. Das ist php und nötig, wenn Du die möglichen Länder dynamisch aus einer Datenbank ermittelst. Du kannst z. B. eine DB-Tabelle machen, in der Du den möglichen Ländern einen Versandkostenaufschlag zuordnest.

Gruß hpvw
 
Dummer Fehler von mir! Habe das in mein Script eingefuegt gehabt aber im Browser ne andere Version offen gehabt. Deshalb konnte ich keine Veraenderungen feststellen. lol

Aber eine Frage bleibt dann noch. Sorry wenn meine Fragen fuer euch recht einfach und dumm sind. Ich finde aber toll, dass man hier nicht als vollkommender Idiot abgestempelt wird, wie in vielen anderen Foren. Also hier die Frage: land ist ja jetzt eine Variable. Gilt die aber auch fuer php? Oder muss ich da noch vorher nen anderen Befehl einfuegen?

Danke vielamsl euch beiden
 
Sowie der User das Formular abgeschickt hat, kannst/musst Du sie als $_GET['land'] bzw. $_POST['land'] verarbeiten, je nach 'method' des Formulars. Bevor der User das Formular abschickt hat er aus Sicht des Servers (wo Dein Skript liegt) ja auch noch nichts ausgewählt. Also 'gilt' sie erst in Deinem php, wenn er das Formular abgeschickt hat.
Ich kenne mich mit Sessions nicht so gut aus, aber Du kannst den Inhalt dieser Variable in der Session speichern, und dort immer wieder auslesen. Wie das geht solltest Du von Deinem Warenkorb wissen, da kann ich Dir leider jetzt nicht helfen.

Gruß hpvw
Noch ein Tipp: Beim Testen jeglichen Browsercache abschalten, wenn Du kannst auch alle Proxies.
 
Die Sache ist nur, dass der User kein Formular abschicken soll.
Er soll in dem Warenkorb angeben in welches Land geliefert werden soll, damit die Versandkosten dort schon mit reingerechnet werden koennen. Also haut das mit $_POST leider nicht hin.
die Variable heisst ja jetzt 'land'.
habe jetzt bei mir folgendes stehen
HTML:
<select name="land">
<option>Deutschland</option>
<option>Land2</option>
</select>
PHP:
<?
If ($artikelnr[0] < '200000')
$versandkosten = '4.90';
else
$versandkosten = '7.90';
echo $versandkosten;
?>

Artikelnr ist ein array. Nun will ich aber aus dem If-Block etwas in dieser Richtung machen
PHP:
If ($artikelnr[0] < '200000' AND $land = 'Deutschland')
$versandkosten = '4.90'
elseif($artikelnr[0] < '200000')
usw.
Nur kann ich das so machen, wenn 'land' noch nicht in php definiert ist?

Danke und gute Nacht
 
Der User muss irgendeinen request abschicken, damit Dein php-Skript Bescheid weiss.
Ich habe wenig Ahnung von JavaScript, aber evtl. kannst Du im JavaScript-Forum nochmal gesondert nahcfragen, ob Du damit etwas in einen Cookie schreiben kannst. Den könntest Du später in php auslesen.
Die Seite in der Du das Land auswählen lässt, kann auf keinen Fall die Seite sein, die letztendlich die Versandkosten präsentiert, es sei denn, Du manipulierst sie mit JavaScript und schreibst, wenn es geht, mit JavaScript in den Cookie.
Eine ganz dreckige Variante habe ich neulich mal gemacht. Du kannst das Formular über target in einen IFRAME leiten (css:display:none;) und mit JavaScript abschicken. Auch in diesem Fall würde sich die Seite aber nicht ändern, außer Du manipulierst sie mit JavaScript.
Dan nmusst Du aber sicherstellen, dass Du in php undin JavaScript die gleichen Berechnungen für die Versandkosten verwendest.
Aber gerade in einem Shop ist es IMHO sehr riskant, vorrauszusetzen, dass der User JavaScript aktiviert hat. Das kann Kunden kosten!

$land wird auf den meisten Servern nicht nach absenden eines Formulars definiert sein, sondern der Arrayindex 'land' in dem Array $_POST oder $_GET. Du kannst das dann so machen:
Am Anfang Deines Skripts:
PHP:
if(!empty($_POST['land'])) {
    $land=$_POST['land'];
}

Gruß hpvw
 
Zurück