jquery получить атрибуты данных внутри select2, а l oop php - PullRequest
0 голосов
/ 12 января 2020

Я просматривал похожие вопросы, связанные с атрибутами данных select2, но не смог найти то, что искал. Я потратил время на это.

По сути, у меня есть выпадающий список select2 в течение некоторого времени l oop, который выбирает значения из базы данных sql. Мне нужно добавить дополнительный атрибут данных, и когда опция выбрана, мне нужно отобразить выбранные данные, приписанные в поле ввода. Мой код выглядит следующим образом:

 <select class="select2-dropdown form-control" tabindex="-1" id="user" name="user">
    <option value="">Select User</option>
    <?php
    $fetchuser = mysqli_query($link,"SELECT * FROM user ORDER BY name ASC") or die(mysql_error());
    while($row=mysqli_fetch_assoc($fetchuser))
    {
        $id = $row["id"];
        $name  = $row["name"];
        $status = $row["status"];
    ?>
     <option value="<?php echo $id; ?>" data-status="<?php echo $status; ?>"><?php echo $name; ?></option>

    <?php } ?>
</select>
<input id="status" />

Мой JS:

<script type=text/javascript>
    $('#user').on('select2:selecting', function() {
        var status=$(this).find(":selected").data("status");
        $('#status').val(status); 
    });
</script>

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

Может кто-нибудь подсказать, где я допустил ошибку.

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 12 января 2020

Я думаю, это изменит функцию, которую нужно использовать

 $('#user').on('change', function() {
    var status= $(this).find(":selected").data("status");
    $('#status').val(status); 
});
1 голос
/ 12 января 2020

Твой код такой странный для меня. Попробуйте это:

  $('select').on('change', function() {
    var status=$(this).find(":selected").data("status");
    $('#status').val(status);
  });
...