选择框javascript的一行中有两个或多个值

时间:2013-07-04 07:54:49

标签: php javascript drop-down-menu

在表单中,我需要为选择输入的每一行输入2个值,如下所示:

<select name="amount" id="txtAmount" class="sbox" style="width: 260px;">
<option value="34.00" kredit="3000">30.00 kreditov = 34.00 €   (1.13 €/kredit)</option>
<option value="19.75" kredit="1660">16.60 kreditov = 19.75 €   (1.19 €/kredit)</option>
<option value="48.00" kredit="5000">50.00 kreditov = 48.00 €   (0.96 €/kredit)</option>
</select>

现在我希望用PHP获得kredit值:

echo 'kredit: '.$_REQUEST['???.kredit']';
echo 'amount: '.$_REQUEST['amount']';

金额有效,但kredit不起作用。

如何在金额选择框中获得kredit值?

3 个答案:

答案 0 :(得分:0)

你做不到。 name标记的select属性表示查询参数的名称,value标记的option是值。将kredit值存储在您的服务器中。

答案 1 :(得分:0)

您无法通过选项标记提交两个值,因为value属性是唯一要提交的值。

有了这个说,你甚至可能不想这样做。据我所知,$kredit变量保存了用户信用的价值。这可以很容易地修改客户端,并允许设置额外的信用。

尽管如此,您可以将两个值都放在value属性中,并使用分隔符来分隔值。

<option value="<?php echo $amount .'-' . $kredit; ?>">Display name</option>

这需要您在发布表单后将它们分开。

$values = explode('-', $_POST['amount']);
echo $values[0]; // Amount
echo $values[1]; // Kredit

另一个选项是Javascript事件,当用户选择所需选项时,该事件将填充另一个隐藏元素。

答案 2 :(得分:0)

如何使用input'添加隐藏的name='kredit字段?

<input type='hidden' name='kredit' id='kredit'/>

隐藏的kredit字段将提交给服务器。

var select = document.getElementById('txtAmount');
select.addEventListener('change', function(e) {
    var kredit = this.options[this.selectedIndex].getAttribute('kredit');
    document.getElementById('kredit').value = kredit;
    alert(document.getElementById('kredit').value);
});

这允许您使用以下方式获取所选选项的kredit属性:

$_REQUEST['kredit']

<强> JSFiddle