2016-08-09 16 views
0

ich eine Reihe von Optionen anbiete, die 20 £ Preis ErgänzungenParsing ein ausgewähltes Element

zB geschliffenem Glas + anziehen, + Spiegelglas 10 £, + Klassischer £ 20

So habe ich zwei Feldvariablen $option_description und $option_price und

Ich mache ein <select> Element mit den Optionen so;

<select> 
<option value='0'>Please select...</option> 
<option value='<?=$option_price[0]; ?>'><?=$option_description[0]; ?> +£<?=$option_price[0]; ?></option> 
... 
</select> 

Was ich tun muß, nachdem der Benutzer seine Auswahl getroffen hat, ist es, die beiden Variablen separat in den $_POST[] Variable übergeben. Der Preis wird bei Abgabe an das Preisfeld hinzugefügt und die Beschreibung muss in der Reihenfolge wie eine Anweisung sein.

Wie gehe ich mit meiner Benutzerauswahl um, da der Wert von $ option_price nicht eindeutig ist?

+0

'base64_encode' Ihre Beschreibung erhalten und setzen es in "Wert" -Attribut. –

+1

Ich denke, dass Sie Bit JavaScript hier verwenden müssen. Vielleicht etwas wie diese Hilfe: [link] (http://stackoverflow.com/questions/3245967/can-an-option-in-a-select-tag-carry-multiple-values) – PerunSS

+0

Wahrscheinlich eine schlechte Idee zu verwenden der Preis als ein Formularfeld * wenn * Sie sich darauf verlassen werden, dass dieser Wert im Backend genau ist ... es ist ziemlich trivial, es vom Frontend zu ändern (zB Tamper). Besser dran, nur eine eindeutige ID für die Option und verwenden Sie das; propagieren den Preis auf dem Server. – CD001

Antwort

1

Ich denke, dass Sie in Schwierigkeiten geraten, den Preis als Wert für jede Option zu verwenden. Da Sie für mehrere Optionen den gleichen Preis haben, können Sie am Ende nicht wissen, welche Option tatsächlich ausgewählt wurde.

Warum erstellen Sie kein Array, das eindeutige Schlüssel hat und den Preis und den Namen jeder Option enthält. Etwas wie:

$options = [ 
    'beveiled' => ['price' => 20, 'name' => 'Bevelled Glass'], 
    'antique' => ['price' => 20, 'name' => 'Antique Glass'], 
]; 

Dann in Ihrer Vorlage:

<?php foreach($options as $key => $value) { ?> 
    <option value='<?=$key; ?>'><?=$value['name']; ?> +£<?=$value['price]; ?></option> 
<?php } ?> 

Schließlich können Sie mit array_key_exists prüfen, ob eine Option durch den Benutzer ausgewählt wurde.

0

Sie müssen für jede Option eine ID erstellen und die Preissuche serverseitig auf dem Formularpost durchführen. Andernfalls lassen Sie den Kunden seinen eigenen Preis festlegen, wenn sie Firebug oder Postbote oder was auch immer verwenden, um auf Ihrer Formularübermittlungsseite zu posten. Sie können die Preisinformationen auf der Seite doppelt speichern, um die angezeigte Gesamtsumme für den Kunden ohne eine zusätzliche Rundreise zum Server zu aktualisieren, aber nicht vertrauen oder sich auf den vom Nutzer eingereichten Preis verlassen.

0

ID | Preis | Beschreibung | userid

1 | £ 20 | Abgeschrägtes Glas | 2

2 | £ 10 | Spiegelglas | 2

Sie eine andere Tabelle für Einzelheiten angeben der Produktbeschreibung und Preis und mit userid machen können Sie Informationen für bestimmte Benutzer mit Beschreibung der Produkt- und Preis

Verwandte Themen