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']';

金額は機能しますが、信用は機能しません。

金額選択ボックスでクレジット値を取得するにはどうすればよいですか?

4

3 に答える 3

0

value送信される値は属性のみであるため、option タグを使用して 2 つの値を送信することはできません。

そうは言っても、そうしたくないかもしれません。私が知る限り、$kredit変数はユーザーのクレジットの値を保持しています。これはクライアント側で簡単に変更でき、追加のクレジットを設定できます。

valueただし、値を区切る区切り文字を使用して、属性内に両方の値を配置できます。

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

これにより、フォームが投稿されたら、それらを分離する必要があります。

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

もう 1 つのオプションはJavascript、ユーザーが必要なオプションを選択したときに、別の隠し要素を設定するイベントです。

于 2013-07-04T08:20:39.303 に答える
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

できません。nameタグのプロパティはselectクエリ パラメータの名前を意味し、タグのvalueプロパティoptionは値です。サーバーにkredit値を保存します。

于 2013-07-04T08:10:29.010 に答える