Как изменить заголовок таблицы и ее содержимое в зависимости от имени администратора или обычного пользователя, используя AJAX и PHP? - PullRequest
0 голосов
/ 14 января 2020

У меня есть таблица, в которой я изменяю заголовок таблицы и ее содержимое, используя PHP значение идентификатора сеанса, но теперь я хочу использовать AJAX, в котором есть кнопка, по которой нажимается кнопка и запрашивается таблица через файл JS и в бэкэнде выполняется файл PHP, и этот файл PHP отправляет файл JSON и JS, анализирует таблицу и отображает результат.

Но проблема в том, что я не могу используйте PHP Session в JS файле. Пожалуйста, объясните, как мне перейти к изменяющемуся заголовку таблицы с соответствующим содержимым строки.

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

Что-то должно быть сделано в файле viewleadtable.js, который может получить, используя вход в систему с использованием PHP Session.

Хотя таблица генерируется, но не проверяет, вошел ли в систему администратор или нормальный пользователь. Также имеется ошибка консоли для доступа к переменной admin.

Просмотр таблицы интересов

Lead Table

Просмотр таблицы кампании

image

Ниже приведена часть кода dashboard.html

<section class="operation" id="view_all_lead_Campaign" style="width: 100%;margin: 0 auto; display: none;">
   <!-- Main Tables Campaign and Lead Table                        -->

   <div class="row">

   <!-- MAIN TABLE-->

   <div class="col" >                        
     <button class="viewMainTable" name='viewMainTable' id='viewMainTableButton' >Lead Table</button>
     <button class="viewCampaignTable" name='viewCampaignTable' id='viewCampaignTableButton' >Campaign Table</button>

    <div class="row">
        <div class="col">
            <div id='viewmaintable' style="margin-top: 10px;">

            </div>                        
        </div>                    
    </div>

    <div class="row">
        <div class="col">
            <div id="viewcampaigntable" style="margin-top: 10px;">

            </div>                       
        </div>                    
    </div>

    <div class="row">
        <div class="col span-1-of-3">
            <label></label>                            
        </div>
        <div class="col span-2-of-3">
            <div class="message_box" style="margin-left: 60px;">

            </div>
        </div>
    </div>

</section>

В файле viewleadtable.js Но я пытаюсь использовать PHP внутри него , Также только другая часть выполняет

$(document).ready(function() {

    var delay = 1000;

    $('#viewMainTableButton').click(function(e) {

        e.preventDefault();

        $.ajax({
            type: "POST",

            url: "./server/viewleadtable.php",

            beforeSend: function() {
                $('.message_box').html(
                    '<img src="tenor.gif" width="40" height="40"/>'
                );
            },
            success: function(data) {

                var result = $.parseJSON(data);

                var admin = '<?php echo $_SESSION["Admin"] ?>';
                var user_id = '<?php echo $_SESSION["User_Id"] ?>';


                console.log(result);              


                if(admin == 1){

                    var string = '<table><thead><th>#</th><th>Lead Id</th><th>Name</th><th>Website</th><th>Linkedin</th><th>Lead Description</th><th>Owner Notes</th><th>Admin Notes</th><th>Added By</th><th>Last Contact Date</th><th>Next Contact Date</th><th>Lead Status</th><th>Details</th></thead><tbody>';

                    /* from result create a string of data and append to the div */

                    var i = 1;

                    $.each(result, function(key, value) {

                        string += "<tr><td>" + i + "</td><td>" + value['Lead_Id'] + "</td><td>" + value['FirstName']+" "+value['LastName'] + "</td><td>" + value['Website'] + "</td><td>" + value['Linkedin'] + "</td><td>" + value['LeadDescription'] + "</td><td>" + value['OwnerNotes'] + "</td><td>" + value['AdminNotes'] + "</td><td>"+ value['LeadAddedBy']+"<br>Date/Time: "+value['LeadAddedOn'] + "</td><td>" + value['LastContactDate'] + "</td><td>" + value['NextContactDate'] + "</td><td>" + value['LeadStatus'] + "</td><td>" + "<a href='#'>Click Here</a></td></tr>";

                        i = i + 1;

                    });

                    string += '</tbody></table>';

                }else{

                    var string = '<table><thead><th>#</th><th>Lead Id</th><th>Name</th><th>Website</th><th>Linkedin</th><th>Lead Description</th><th>Owner Notes</th><th>Last Contact Date</th><th>Next Contact Date</th><th>Lead Status</th><th>Details</th></thead><tbody>';

                    /* from result create a string of data and append to the div */

                    var i = 1;

                    $.each(result, function(key, value) {

                        string += "<tr><td>" + i + "</td><td>" + value['Lead_Id'] + "</td><td>" + value['FirstName']+" "+value['LastName'] + "</td><td>" + value['Website'] + "</td><td>" + value['Linkedin'] + "</td><td>" + value['LeadDescription'] + "</td><td>" + value['OwnerNotes'] + "</td><td>" + value['LastContactDate'] + "</td><td>" + value['NextContactDate'] + "</td><td>" + value['LeadStatus'] + "</td><td>" + "<a href='#'>Click Here</a></td></tr>";

                        i = i + 1;

                    });

                    string += '</tbody></table>';                    


                }    

                $("#viewmaintable").html(string);
                $('.message_box').html('');

            }

        });       

    });

});

В viewleadtable.php

<?php 

// send a JSON encoded array to client

include('connection.php');

$selectSQL = "SELECT * FROM tbl_main_lead_info ";

$result_array = array();

$result = $conn -> query ($selectSQL);

// If there are results from database push to result array

if(mysqli_num_rows($result) > 0){

    while ($row = mysqli_fetch_array($result)) {

        array_push($result_array, $row);

    }

}

echo json_encode($result_array);

$conn->close();

?>

Точно так же у меня есть код для просмотра таблицы кампании, но проблема в том, что я не могу выполнить if else условие, использующее PHP переменную сеанса.

Вкратце ниже необходимо изменить объект, так как он не работает.

success: function(data) {

                var result = $.parseJSON(data);

                var admin = '<?php echo $_SESSION["Admin"] ?>';
                var user_id = '<?php echo $_SESSION["User_Id"] ?>';


                console.log(result);              


                if(admin == 1){

                    var string = '<table><thead><th>#</th><th>Lead Id</th><th>Name</th><th>Website</th><th>Linkedin</th><th>Lead Description</th><th>Owner Notes</th><th>Admin Notes</th><th>Added By</th><th>Last Contact Date</th><th>Next Contact Date</th><th>Lead Status</th><th>Details</th></thead><tbody>';

                    /* from result create a string of data and append to the div */

                    var i = 1;

                    $.each(result, function(key, value) {

                        string += "<tr><td>" + i + "</td><td>" + value['Lead_Id'] + "</td><td>" + value['FirstName']+" "+value['LastName'] + "</td><td>" + value['Website'] + "</td><td>" + value['Linkedin'] + "</td><td>" + value['LeadDescription'] + "</td><td>" + value['OwnerNotes'] + "</td><td>" + value['AdminNotes'] + "</td><td>"+ value['LeadAddedBy']+"<br>Date/Time: "+value['LeadAddedOn'] + "</td><td>" + value['LastContactDate'] + "</td><td>" + value['NextContactDate'] + "</td><td>" + value['LeadStatus'] + "</td><td>" + "<a href='#'>Click Here</a></td></tr>";

                        i = i + 1;

                    });

                    string += '</tbody></table>';

                }else{

                    var string = '<table><thead><th>#</th><th>Lead Id</th><th>Name</th><th>Website</th><th>Linkedin</th><th>Lead Description</th><th>Owner Notes</th><th>Last Contact Date</th><th>Next Contact Date</th><th>Lead Status</th><th>Details</th></thead><tbody>';

                    /* from result create a string of data and append to the div */

                    var i = 1;

                    $.each(result, function(key, value) {

                        string += "<tr><td>" + i + "</td><td>" + value['Lead_Id'] + "</td><td>" + value['FirstName']+" "+value['LastName'] + "</td><td>" + value['Website'] + "</td><td>" + value['Linkedin'] + "</td><td>" + value['LeadDescription'] + "</td><td>" + value['OwnerNotes'] + "</td><td>" + value['LastContactDate'] + "</td><td>" + value['NextContactDate'] + "</td><td>" + value['LeadStatus'] + "</td><td>" + "<a href='#'>Click Here</a></td></tr>";

                        i = i + 1;

                    });

1 Ответ

0 голосов
/ 14 января 2020

Как я уже сказал в комментарии, вы можете использовать php в ajax или вы можете использовать операторы if в ajax.

Это должно работать:

$(document).ready(function() {
    var delay = 1000;
    $('#viewMainTableButton').click(function(e) {
        e.preventDefault();
        $.ajax({
            type: "POST",
            url: "./server/viewleadtable.php",
            beforeSend: function() {
                $('.message_box').html(
                    '<img src="tenor.gif" width="40" height="40"/>'
                );
            },
            success: function(data) {
                var result = $.parseJSON(data);
            /*Delete this variables if you dont need*/
                var admin = '<?php echo $_SESSION["Admin"] ?>';
                var user_id = '<?php echo $_SESSION["User_Id"] ?>';
                console.log(result);              
               <?php if($_SESSION["Admin"] == 1){ ?>
                    var string = '<table><thead><th>#</th><th>Lead Id</th><th>Name</th><th>Website</th><th>Linkedin</th><th>Lead Description</th><th>Owner Notes</th><th>Admin Notes</th><th>Added By</th><th>Last Contact Date</th><th>Next Contact Date</th><th>Lead Status</th><th>Details</th></thead><tbody>';
                    /* from result create a string of data and append to the div */
                    var i = 1;
                    $.each(result, function(key, value) {
                        string += "<tr><td>" + i + "</td><td>" + value['Lead_Id'] + "</td><td>" + value['FirstName']+" "+value['LastName'] + "</td><td>" + value['Website'] + "</td><td>" + value['Linkedin'] + "</td><td>" + value['LeadDescription'] + "</td><td>" + value['OwnerNotes'] + "</td><td>" + value['AdminNotes'] + "</td><td>"+ value['LeadAddedBy']+"<br>Date/Time: "+value['LeadAddedOn'] + "</td><td>" + value['LastContactDate'] + "</td><td>" + value['NextContactDate'] + "</td><td>" + value['LeadStatus'] + "</td><td>" + "<a href='#'>Click Here</a></td></tr>";
                        i = i + 1;
                    });
                    string += '</tbody></table>';
                <?php }else{ ?>
                    var string = '<table><thead><th>#</th><th>Lead Id</th><th>Name</th><th>Website</th><th>Linkedin</th><th>Lead Description</th><th>Owner Notes</th><th>Last Contact Date</th><th>Next Contact Date</th><th>Lead Status</th><th>Details</th></thead><tbody>';
                    /* from result create a string of data and append to the div */
                    var i = 1;
                    $.each(result, function(key, value) {
                        string += "<tr><td>" + i + "</td><td>" + value['Lead_Id'] + "</td><td>" + value['FirstName']+" "+value['LastName'] + "</td><td>" + value['Website'] + "</td><td>" + value['Linkedin'] + "</td><td>" + value['LeadDescription'] + "</td><td>" + value['OwnerNotes'] + "</td><td>" + value['LastContactDate'] + "</td><td>" + value['NextContactDate'] + "</td><td>" + value['LeadStatus'] + "</td><td>" + "<a href='#'>Click Here</a></td></tr>";
                        i = i + 1;
                    });
                    string += '</tbody></table>';                    
               <?php } ?>   
                $("#viewmaintable").html(string);
                $('.message_box').html('');
            }
        });       
    });
});

Или вы может сделать эту проверку для роли пользователя, а не для администратора.

var user = <?php echo $_SESSION["role"]; ?>;

    if (user === 1) {
      //Write your ajax codes here 
    } else {
      //Write your ajax codes here 
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...