124

HTMLフォームにいくつかのオプションを含むselectタグを取得しました:(
データはPHPを使用して収集および処理されます)

テスト:

<select name="Testing">  
  <option value="1"> One  
  <option value="2"> Two  
  <option value="3"> Three
</select>

ユーザーが「1つ」を選択した場合のように、オプションが複数の値を保持することは可能ですか。このオプションに関連する他のいくつかの値がデータベースに書き込まれます。

select各オプションが次のように1つ以上の値を保持できるようにタグを設計するにはどうすればよいですか。

<select name="Testing">  
  <option value="1" value="2010"> One  
  <option value="2" value="2122"> Two  
  <option value="3" value="0"> Three
</select>
4

18 に答える 18

177

これを行う1つの方法は、最初に配列、2番目にオブジェクトです。

    <select name="">
        <option value='{"num_sequence":[0,1,2,3]}'>Option one</option>
        <option value='{"foo":"bar","one":"two"}'>Option two</option>
    </select>
于 2010-07-14T12:23:25.670 に答える
16

1つのオプションは、コンマで区切られた複数の値を入力することです

お気に入り

value ="123,1234"

サーバー側でそれらを分離します

于 2010-07-14T12:21:16.047 に答える
15

これを行う必要がある場合は、他の値をデータ値にしてから、js を使用して非表示の入力に割り当てます。

<select id=select>
<option value=1 data-othervalue=2 data-someothervalue=3>
//...
</select>

<input type=hidden name=otherValue id=otherValue />
<input type=hidden name=someOtherValue id=someOtherValue />

<script>
$('#select').change(function () {
var otherValue=$(this).find('option:selected').attr('data-othervalue');
var someOtherValue=$(this).find('option:selected').attr('data-someothervalue');
$('#otherValue').val(otherValue);
$('#someOtherValue').val(someOtherValue);
});
</script>
于 2015-06-18T19:14:50.290 に答える
5

この情報をデータベースに書き込むことが目標である場合、属性にプライマリ値と「関連する」値が必要なのはなぜvalueですか。プライマリ値をデータベースに送信し、データベースのリレーショナルな性質に残りを任せてはどうでしょうか。

に複数の値を含める必要がある場合OPTIONは、あまり一般的ではない区切り文字を試してください。

<OPTION VALUE="1|2010">One</OPTION>

または、オブジェクトリテラル(JSON形式)を追加します。

<OPTION VALUE="{'primary':'1','secondary':'2010'}">One</OPTION>

それは本当にあなたがやろうとしていることに依存します。

于 2010-07-14T12:26:24.447 に答える
4

次のような各オプションの値を入力します

<SELECT NAME="val">
   <OPTION value="1:2:3:4"> 1-4  
   <OPTION value="5:6:7:8"> 5-8  
   <OPTION value="9:10:11:12"> 9-12
</SELECT>

PHPの場合、サーバー側でexplode [array] = explode([delimeter]、[posted value]);のような関数を使用します。

$values = explode(':',$_POST['val']

上記のコードは、数字のみを含む配列を返し、「:」は削除されます

于 2010-07-14T12:26:28.323 に答える
1

区切り文字を使用して値を区切ります。

<select name="myValues">
<option value="one|two">
</select>

<?php>
$value = filter_input(INPUT_POST, 'myValues');
$exploded_value = explode('|', $value);
$value_one = $exploded_value[0];
$value_two = $exploded_value[1];
?>
于 2018-05-08T00:07:36.030 に答える
0

HTMLではタグパラメータの重複は許可されていません。あなたにできることは、ですVALUE="1,2010"。ただし、サーバー上の値を解析する必要があります。

于 2010-07-14T12:24:34.387 に答える
0

データ属性を使用して、単純な JavaScript とブレード テンプレートで値を取得します。

<select class="form-control" id="channelTitle" name="channelTitle" onchange="idChannels()">
                    @foreach($post['channels'] as $channels)
                        <option value="{{ $channels->channel_title }}" data-id="{{ $channels->channel_id }}">{{ $channels->channel_title }}</option>
                    @endforeach
                </select>

データIDの結果はこちら

<div class="form-group">
                <strong>Channel Id:</strong>
                <input type="text" name="channelId" id="channelId" class="form-control" placeholder="Channel Id">
            </div>

JavaScript

<script>
function idChannels(){
    var elem=document.getElementById("channelTitle");
    var id = elem.options[elem.selectedIndex].getAttribute('data-id');

    document.getElementById("channelId").value = id;
} </script>
于 2022-01-22T06:40:44.730 に答える
-5

複数の属性を使用できます

<SELECT NAME="Testing" multiple>  
 <OPTION VALUE="1"> One  
 <OPTION VALUE="2"> Two  
 <OPTION VALUE="3"> Three

于 2016-11-23T12:57:43.003 に答える