Was mich interessiert, ist $ option_value ['price'] in einer Zeichenfolge aus der Dropdown-Liste, nicht. Die Verwendung von .value gibt das spätere zurück.
Ich habe ausgewählte Menüs, die in einer foreach () - Schleife erstellt werden. Die Dropdowns halten Preisoptionen. Ich versuche, jedem Produkt eine eigene ID zu geben, damit ich die Javascript-Funktion onChange () verwenden kann, um die Preise auf dem Bildschirm zu aktualisieren.
Das Select-Tag sieht folgendermaßen aus:
<select name="option[<?php echo $option['product_option_id']; ?>]" class="select_options" id="select_<?php echo $product['product_id']; ?>" onchange="getIt(this);">
Und das Javascript:
function getIt(el) {
var id = el.id;
a = document.getElementById(id).text;
alert(a);
}
Wenn ich die ID benachrichtige, erhalte ich die Nummer select_some. So kann ich sehen, dass es die ID bekommt. Aber wenn ich a alarmiere, bekomme ich [Objekt HTMLSelectElement].
Also habe ich es versucht
alert(a.options.selectedIndex.value);
Und nicht identifiziert werden.
<?php if ($product['options']) { ?>
<div class="options" id="option_<?php echo $product['product_id']; ?>">
<?php foreach ($product['options'] as $option) { ?>
<?php if ($option['type'] == 'select') { ?>
<div id="option-<?php echo $option['product_option_id']; ?>" class="option select_option">
<select name="option[<?php echo $option['product_option_id']; ?>]" class="select_options" id="select_<?php echo $product['product_id']; ?>" onchange="getIt(this);">
<option value=""><?php echo $text_select; ?></option>
<?php foreach ($option['option_value'] as $option_value) { ?>
<option value="<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
<?php if ($option_value['price']) { ?>
(<?php echo $option_value['price_prefix']; ?><span id="newPrice"><?php echo str_replace('.00','.',$option_value['price']); ?></span>)
<?php } ?>
</option>
<?php } ?>
</select>
</div>
<?php } ?>
4 Antworten
"Gibt es eine Möglichkeit, den in der Dropdown-Liste angezeigten Text ($ xx.xx) anstelle des Werts abzurufen?"
Ich denke das ist wonach du suchst:
function getIt(el) {
var a = el.options[el.selectedIndex].text;
alert(a);
}
Mit el.selectedIndex
erhalten Sie natürlich den Index der aktuell ausgewählten Option, den Sie als Index für die Sammlung von Optionen verwenden können, el.options
, und erhalten dann den text
dieser Option. Die Eigenschaft text
gehört zu jeder Option, nicht zur Auswahl.
Demo: http://jsfiddle.net/FCnUQ/
(Beachten Sie, dass selectedIndex
, wenn keine Option ausgewählt ist, -1
ist.)
Sie müssen getElementById()
überhaupt nicht verwenden, da Sie bereits einen Verweis auf das Element el
haben.
Veränderung :
a = document.getElementById(id).text;
Zu:
a = document.getElementById(id).value;
Dadurch wird der Wert der ausgewählten Option angezeigt.
Probieren Sie diesen Code aus und setzen Sie document.getElementById(id).value
anstelle von document.getElementById(id).text
function getIt(id) {
a = document.getElementById(id).value;
alert(a);
}
Wenn Sie dies wie getit(this)
übergeben, sollten Sie wie folgt codieren
function getIt(el) {
var id = el.id;
a = document.getElementById(id).value;
alert(el.value); //you can directly alert like this
}
Verwandte Fragen
Neue Fragen
php
PHP ist eine weit verbreitete, übergeordnete, dynamische, objektorientierte und interpretierte Skriptsprache, die hauptsächlich für die serverseitige Webentwicklung entwickelt wurde. Wird für Fragen zur PHP-Sprache verwendet.