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