【问题标题】:dynamically add drop down list from json从json动态添加下拉列表
【发布时间】:2017-04-15 09:58:38
【问题描述】:

我正在使用带有以下内容的 Bootstrap Select:

1) 我的用户 json 数组如下所示: [{"usr":1,"name":"Bob"},{"usr":3,"name":"Janet"},{"usr":6,"name":"Perry"}.. .

我想从 json 数组中动态创建下拉列表,而不是 Mustard、Ketchup 和 Relish 选项,其中 value = usr 和 text display = name。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<title>Bootstrap 101 Template</title>

<!-- Jquery & Bootstrap -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>


<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" 
                       integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"  crossorigin="anonymous">

<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" 
                       integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">

<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" 
                       integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>



<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.1/css/bootstrap-select.min.css">

<!-- Latest compiled and minified JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.1/js/bootstrap-select.min.js"></script>

<!-- (Optional) Latest compiled and minified JavaScript translation files 
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.1/js/i18n/defaults-*.min.js"></script> -->

<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
  <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
  <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->

<style>
.selected {
  background-color: lightblue;
  color:#000;
  text-shadow:0 1px 0 rgba(0, 0, 0, 0.4);
}

.dropdown-menu>li>a:hover { 
  background-color: lightblue!important;
  background-image:none!important
}
</style>

<script  type="text/javascript">
// global Javascript variables  
    users  = <?php echo json_encode($users); ?> 
</script>





</head>
<body>
 <form action="select.php"  method="POST">
    <div style='margin:0 auto;text-align:center'>
      <h1>Select Box!</h1>
      <br>

         <select name='crewNames[]' class="selectpicker" data-width="15%" multiple data-selected-text-format="count">
            <option>Mustard</option>
            <option>Ketchup</option>
            <option>Relish</option>
         </select>
         <br><br>
         <button type="submit" >Update</button>
    </div>
 </form>  
</body>




<script>
$( document ).ready(function() {
 $('.selectpicker').selectpicker('val', ['Mustard']);

 });
</script>

</html>

【问题讨论】:

    标签: php twitter-bootstrap select dynamic drop-down-menu


    【解决方案1】:
    $(document).ready(function() {
        users = <?php echo json_encode($users); ?>
        users = JSON.parse(users);
    
        $('#crew-names').empty();
        $.each(users, function(index, element) {
            var option = $('<option>').attr('value', element.usr).text(element.name);
            $('#crew-names').append(option);
        });
    });
    

    crew-names 指定为下拉元素的ID,以便更容易选择和操作元素。

    【讨论】:

    • 嗨,我试过了,但我在 users=JSON.parse(users) 上得到了一个意外的标识符我删除了该行并且它有效!感谢您的帮助
    • 不客气。 :) 我不确定代码 &lt;?php echo json_encode($users); ?&gt; 是否将 JSON 字符串或对象返回到 users 变量。如果是 JSON 字符串,则需要使用 JSON.parse(users)。
    猜你喜欢
    • 2014-09-27
    • 1970-01-01
    • 2016-10-19
    • 2018-07-02
    • 2020-11-20
    • 2020-02-15
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多