jquery ajax получение переменной от одной функции к другой php - PullRequest
1 голос
/ 01 февраля 2020

Таким образом, в основном, чтобы дать краткое описание, прежде чем изучать код, который я даю ниже. По сути, я пытаюсь сделать так, чтобы у меня была модальная страница на одной из php страниц, как показано ниже. Я пытаюсь показать модель из php функции "fetch_assignment_history", приведенной ниже. Есть кнопка, с помощью которой мы можем добавлять пользователей в назначение, и кнопка onclick event (onClick = "assign (this.dataset.id)") вызывает функцию, передающую идентификатор из функции php в функцию JS.

Поэтому, когда пользователь нажимает кнопку, функция JS показывает модальный режим, а также получает идентификатор назначения в функции. Этот идентификатор назначения (через JS) устанавливается для атрибута данных раскрывающегося списка множественного выбора в модале.

Теперь точка, в которой я застрял, setinterval постоянно выбирает назначенных пользователей. Это в основном собрать из mysql базы данных пользователей, которые были добавлены в назначение (идентификаторы с разделителями-запятыми).

Когда модальный открывается, я хочу, чтобы ранее назначенные пользователи были выбраны в множественном выборе (согласно данным в mysql) по умолчанию. Для этого я хочу получить идентификатор, переданный из события onclick

Моя HTML часть (модальная)

<div id="assignee" class="modal custom-modal fade" role="dialog">
                <div class="modal-dialog modal-dialog-centered" role="document">
                    <div class="modal-content">
                        <div class="modal-header">
                            <h5 class="modal-title text-center">Assignment</h5>
                            <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                                <span aria-hidden="true">&times;</span>
                            </button>
                        </div>
                        <div class="modal-body">
                            <div class="col-md-12 col-sm-12 col-xs-12 form-group has-feedback">
                                <label style="color:#333D79FF; font-size:15px;">Add Users <span class="text-danger">*</span></label>
                                <div>
                                    <select class="select2_multiple form-control" multiple="multiple" id="userslist" name="userslist[]" style="width: 100%;left: 10px;">
                                        <option id="none" value="">Select Users</option>
                                            <?php
                                                My PHP CODE TO PULL OUT DATA FROM MYSQL DB
                                                ?>
                                                <option value="<?php echo $id; ?>" data-useravatar="<?php echo $avatar; ?>" data-usertitle="<?php echo $firstname;echo "&nbsp;";echo $lastname; ?>" data-role="<?php echo $role; ?>" data-assignment=""><?php echo $firstname;echo "&nbsp;";echo $lastname; ?></option>

                                            <?php } ?>
                                    </select>
                                </div>
                              <div id="usersfetch"></div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

Моя PHP

1. Функция для получить историю назначений.
Нажатие кнопки внизу переходит на JS и показывает модальный режим. а также передать id

function fetch_assignment_history($connect)
{
    $query = "
    SELECT * FROM assignment 
    WHERE id = '".$_SESSION['id']."' 
    ORDER BY id ASC
    ";

    $statement = $connect->prepare($query);

    $statement->execute();

    $result = $statement->fetchAll();

    $output = '<ul class="list-unstyled">';
    foreach($result as $row)
    {
        $user_name = '';
        $dynamic_background = '';
        $message = '';

                $assignmentname = $row["assignmentname"];
                $name = $row["name"];
                $id     = $row['id'];
        $output .= '

    <div class="x_panel" style=" font-size:14px;">
                    <span class="controlbuttons">
                        <button class="btn btn-round" data-id="'.$id.'" onClick="assign(this.dataset.id)"><i class="material-icons" title="Assign">person_add</i></button>
                    </span>
                </div>

        ';
    }
    $output .= '</ul>';
    return $output;
}

функция для назначенной истории пользователя

function fetch_assigned_user_history($connect)
{
some php queries
}

My JS
Я хочу, чтобы assignid из функции assign (assignid) вызывался из функции fetch_assigned_user_history ( ). Как мне совершить sh это ??????

setInterval(function(){
    fetch_assigned_user_history();
}, 1000);

function assign(assignid)
    {
        var assignid    = assignid;
        $("#assignee").modal("show");
        $('#userslist').data("assignment",assignid);

    }
function fetch_assigned_user_history()
    {
        var action = "fetch_assigned_user_data";
        var getid = ;// I need to get the ID from the previous function from onclick event function assign(assignid) 

        $.ajax({
            url:"assignment.php",
            method:"POST",
            data:{action:action, assignmentid:getid},
            success:function(data)
            {
                $('#usersfetch').html(data);
            }
        })
    }

Надеюсь, у меня все в порядке с моим вопросом. Благодарим за совет, чтобы исправить. Подводя итог, основной вопрос c состоит в том, как вызвать переменную одной функции JS в другой (в этом примере идентификаторы), чтобы я мог получить список пользователей в этом назначении? Также как сделать выбор по умолчанию множественным выбором со значениями базы данных.

1 Ответ

0 голосов
/ 01 февраля 2020

Вы уже сохранили «assignid» в атрибуте data- *, вы можете просто получить его, когда вам это нужно

function assign(assignid) {
  var assignid    = assignid;
  $("#assignee").modal("show");
  
  // You already store your assignid at here
  $('#userslist').data("assignment",assignid);
}

function fetch_assigned_user_history()
    {
        var action = "fetch_assigned_user_data";
        
        // Now you just need to retrieve it
        var getid = $('#userslist').data("assignment");

        $.ajax({
            url:"assignment.php",
            method:"POST",
            data:{action:action, assignmentid:getid},
            success:function(data)
            {
                $('#usersfetch').html(data);
            }
        })
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...