Хобрук: Ваш путь к мастерству в программировании

динамически добавлять выпадающий список из json

Я использую Bootstrap Select со следующим:

1) мой пользовательский массив json выглядит так: [{"usr":1,"name":"Bob"},{"usr":3,"name":"Janet"},{"usr":6," имя":"Перри"}...

Вместо вариантов «Горчица», «Кетчуп» и «Приправа» я хотел бы динамически создавать раскрывающийся список из массива json, где значение = usr и отображаемый текст = имя.

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

Ответы:


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 в качестве идентификатора выпадающего элемента, чтобы было проще выбирать элемент и манипулировать им.

30.11.2016
  • Привет, я попробовал это, но я получаю неожиданный идентификатор для пользователей = JSON.parse (пользователи). Я удалил строку, и она работает! Спасибо за вашу помощь 01.12.2016
  • Добро пожаловать. :) и я не был уверен, возвращает ли код <?php echo json_encode($users); ?> строку или объект JSON в переменную users. Если бы это была строка JSON, вам нужно было бы использовать JSON.parse(users). 01.12.2016
  • Новые материалы

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

    Внедрите OAuth в свои веб-приложения для повышения безопасности
    OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

    Классы в JavaScript
    class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

    Как свинг-трейдеры могут использовать ИИ для больших выигрышей
    По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

    Как построить любой стол
    Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...

    Обзор: Машинное обучение: классификация
    Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

    Разработка расширений Qlik Sense с qExt
    Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..