如何以编程方式在 select div 标签内添加选项?

How to programmatically add options inside a select div tag?

我想做的是,如果可能的话,以编程方式添加 select div 标签内的选项。

这是我的html代码

 <select class="form-control multiplechose_questionTypes" name="selector[]" id="selector" > 
   <option value="" disabled selected>Select your option</option>
   <option value="saab">Saab</option>
   <option value="fiat">Fiat</option>
   <option value="audi">Audi</option>
 </select>

在我的 php 脚本中,我有一个变量,它从传入的函数中获取计数

$count  = count_answers_belongToOne_question($questionNumber);

假设 $count 返回值 2,我只想在 select div 标签内显示 2 个选项。因此,根据 $count 中的值,我希望它在 <select> 上更新。

任何人都可以建议我如何着手进行此操作的想法或解决方案

只需使用一个简单的循环在页面呈现之前将选项注入页面。我假设您有一组可供提取的期权数据。

<?php 
    $optionData = array(
        array('value' => 'saab', 'label' => 'saab'),
        ...
    );
?>

<select class="form-control multiplechose_questionTypes" name="selector[]" id="selector" >
    <option value="" disabled selected>Select your option</option>
    <?php
        for($i = 0; $i < count; $i++) {
            echo '<option value="' . $optionData[$i]["value"] . '">' . $optionData[$i]["label"] . '</option>';
        }
    ?>
</select>

动态添加选项的方式有两种,分别是javascript和PHP,

选项 1:使用 Javascript - 我假设 select 选项是静态的

第 1 步:您需要在 json 变量中设置 selects 选项 第 2 步:将 $count php 变量赋值给 js count 变量 第 3 步:根据您的 js 计数变量,您可以创建 select 选项并插入到 select 元素中。

选项 2:使用 PHP 和 Ajax

第 1 步:您需要创建一个 ajax 请求并发送 $count php 变量 第 2 步:创建 PHP 函数,它将调用 ajax 请求并将您的选项呈现为 HTML。 第 3 步:将此选项 HTML 字符串设置为目标 select 元素 ID。

select your element first
var select = document.getElementById('selectElementId');

onclick or any other event add this functionality
function addOption()
{ 
var opt = document.createElement('option');
    opt.value = 'YourValue';
    opt.innerHTML = 'Option1';
    select.appendChild(opt);
}

试试这个

<?php
$vehicles = array("saab"=>"Saab","fiat"=>"Fiat","audi"=>"Audi");
$count  = count_answers_belongToOne_question($questionNumber);
array_splice($vehicles , $count);
?>
<select class="form-control multiplechose_questionTypes" name="selector[]" id="selector" > 
   <option value="" disabled selected>Select your option</option>
   <?php
       foreach ($vehicles as $key => $value) {
    ?>
        <option value="<?php echo $key;?>"><?php echo $value;?></option>            
   <?php
       }
   ?>   
 </select>

如其他答案所述,使用 PHP 有很好的方法,但这里有一个简单的 javascript 用于更新 HTML DOME select 选项

<script>
function updateSelect(options){

var x = document.getElementById("selector");

if (x.length > 0) {
    for (i = options; i < x.length+1; i++){
        x.remove(options);
    }
} 
}
window.onload = function (){updateSelect(2);}
</script>

您可以在 运行 时设置 php 中的计数值,例如

window.onload = function (){updateSelect(<?=$count ?>);}

或者像这样的ajax

<script>
function updateSelect(options){

var x = document.getElementById("selector");

if (x.length > 0) {
    for (i = options; i < x.length+1; i++){
        x.remove(options);
    }
} 
}
window.onload=function(){
xhttp.onreadystatechange = function() {
  if (xhttp.readyState == 4 && xhttp.status == 200) {
    var count = xhttp.responseText;
    updateSelect(count);
  }
};
xhttp.open("GET", "url/to/get/count", true);
xhttp.send();
}
</script>

希望这对某人有所帮助!