我在一个名为refreshClick的函数下有一个ajax调用,它是用一个由php生成的选择框填充一个div。
使用Javascript:
function refreshClick() {
$.ajax({
url: "modules/elements/customersList.php",
success: function(data){
$('#refreshdiv').html(data);
}
});
}
HTML:
<div id="refreshdiv">test</div>
PHP:
while($row = $result->fetch_assoc()){
$returnString .= '<option value="'.$row['customerid'].'" data-tokens="'.$row['Phone'].$row['customerid'].$row['Email'].$row['ID'].$row['alt1Name'].$row['alt1Info'].$row['alt2Name'].$row['alt2Info'].'">'.$row['Name'].'</option>';
}
echo '<select data-live-search="true" class="selectpicker form-control" data-selected-text-format="count > 1" style="width:100%" name="customer">';
echo $returnString;
echo '</select>';
因此,您可以看到此代码非常简单。我不能为我的生活中的生活出错。我在调用refreshdiv
函数的refreshClick()
div上方有一个按钮,但是当我点击它时,test
这个词就消失了。看起来它只是清除了div,但是如果我检查了Element,我可以看到div被填充的方式与正确的数据一样,但是没有任何东西是可见的。有人能帮我弄明白我哪里错了吗?
附注:我想以这种方式使用它的原因是我可以随时调用此函数来刷新选择框的内容,这样如果使用该软件的任何人更新客户列表,他们可以刷新选择框而不刷新页面。如果有更简单的方法,请赐教。
- 测试数据截图
这是console.log(typeof data)
和console.log(data)
- 检查元素截图
(忽略可怕的刷新按钮,它是临时的。)我还想在页面中包含,在我点击刷新按钮之前的单词&#34; Test&#34;显示在refreshdiv
div中。它显示了。
答案 0 :(得分:5)
哦,你正在使用bootstrap。那就是问题所在。 Bootstrap需要初始化每个选择。它在启动时启动,但每次更改都需要运行:
$(select).selectpicker('refresh');
重新启动新的。