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

时间:2016-03-30 12:18:25

标签: php html select html-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>上更新。

任何人都可以建议我一个关于如何做到这一点的想法或解决方案

5 个答案:

答案 0 :(得分:3)

在渲染之前,只需使用一个简单的循环将选项注入页面。我将假设您有一系列可供选择的数据。

<?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>

答案 1 :(得分:1)

使用javascript和PHP动态添加选项有两种方法,

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

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

选项2:使用PHP和Ajax

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

答案 2 :(得分:1)

Comp_Name   Addr_Street     Cont_FullName
XYZ Co.     12 Light Street NULL
XYZ Co.     44 King Street  Bob
XYZ Co.     44 King Street  Alice
ABC Co.     12 ABC Street   NULL
ABC Co.     44 ABC Street   Bob ABC
ABC Co.     44 ABC Street   Alice ABC

答案 3 :(得分:1)

试试这个

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);
}

答案 4 :(得分:1)

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

<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中的count值,如

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>

希望这有助于某人!