0

在一个表单中,我需要为选择输入的每一行输入 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 值?

4

3 回答 3

0

用'添加隐藏input字段怎么样name='kredit

<input type='hidden' name='kredit' id='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

于 2013-07-04T08:40:33.583 回答
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当用户选择所需选项时将填充另一个隐藏元素的事件。

于 2013-07-04T08:20:39.303 回答
0

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

于 2013-07-04T08:10:29.010 回答