AJAX в 000webhost

У меня проблема с AJAX в 000webhost. Вывод для AJAX не отображается. Кроме того, когда я проверял, в консоли нет ошибок.

Это ссылка на мой сайт: https://cwp-geoworld.000webhostapp.com/

Часть AJAX отлично работает с localhost и может отображать список континентов на боковой панели, а также таблицу в середине страницы при нажатии на боковую панель.

Вот пример того, как это должно выглядеть: https://drive.google.com/open?id=1Tn5hQXepA--o4LTqBc_DzjeZ17yz830Z

Вот коды для index.php, который содержит код AJAX:

<?php
    include("control.php");
    //require_once( "classes/session.class.php" );
    $username = Session::getInstance()->getProperty("username");
    $userRole = Session::getInstance()->getProperty("userRole");
    require_once( "classes/PDOConnection.class.php" );
    //header('Content-type: application/json');
?>

<!DOCTYPE html>
<html>
    <head>
        <meta charset = "utf-8">
        <meta http-equiv = "X-UA-Compatible" content = "IE=edge">
        <title>GeoWorld | Home</title>

        <!--Icon at the tab-->  
        <link rel = "icon" type = "image/png" href = "images/globe_icon.png"/>
        <!-- Tell the browser to be responsive to screen width -->
        <meta content = "width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name = "viewport">
        <link rel = "stylesheet" href = "template/other_pages/bower_components/bootstrap/dist/css/bootstrap.min.css">
        <!-- Font Awesome -->
        <link rel = "stylesheet" href = "template/other_pages/bower_components/font-awesome/css/font-awesome.min.css">
        <!-- Ionicons -->
        <link rel = "stylesheet" href = "template/other_pages/bower_components/Ionicons/css/ionicons.min.css">
        <!-- Theme style -->
        <link rel = "stylesheet" href = "template/other_pages/dist/css/AdminLTE.min.css">
        <!-- Skins -->
        <link rel = "stylesheet" href = "template/other_pages/dist/css/skins/skin-purple.css">
        <!-- Google Font -->
        <link rel = "stylesheet" href = "https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic">
    </head>

    <body class = "hold-transition skin-purple sidebar-mini">
        <!--WRAPPER-->
        <div class = "wrapper">
            <!-- Main Header -->
            <header class='main-header'>
                <!-- Logo -->
                <a href='index.php' class='logo'>
                <!-- mini logo for sidebar mini 50x50 pixels -->
                <span class='logo-mini'><i class='fa fa-globe'></i><b>Geo</b></span>
                <!-- logo for regular state and mobile devices -->
                <span class='logo-lg'><b>Geo</b>World</span>
                </a>
                <!-- Header Navbar -->
                <nav class='navbar navbar-static-top' role='navigation'>
                    <!-- Sidebar toggle button-->
                    <a href='#' class='sidebar-toggle' data-toggle='push-menu' role='button'>
                        <span class='sr-only'>Toggle navigation</span>
                    </a>
                    <div class = "navbar-custom-menu">
                        <ul class = "nav navbar-nav"> 
                            <!--Include Conditions for Navbar-->
                            <?php include ('include/navbar.php'); ?>
                        </ul>
                    </div>
                </nav>
            </header>   
            <!--Include Sidebar-->
            <?php include ('include/sidebar.php'); ?>


            <!-- CONTENT WRAPPER -->
            <div class = "content-wrapper">
                <!-- Content Header (Page header) -->
                <section class = "content-header">
                <h1 align='center'>
                    Welcome to GeoWorld
                </h1>
                </section>
                <!-- Main content -->
                <section class = "content container-fluid">
                    <!-- search form (Optional) -->
                    <div id = "searchTextBox">
                        <div class = "input-group">
                        <input type = "text" id='search' name = "search_country" maxlength=3 class = "form-control" placeholder = "Search for a country here...">
                        <span class = "input-group-btn">
                            <button type = "submit" id='search-btn' class = "btn btn-flat"><i class = "fa fa-search"></i>
                            </button>
                            </span>
                        </div>
                    </div><!-- /.search form -->
                    <br/>
                    <div class = "searchResults"></div><br/>
                    <div class = "box-body">
                        <div id = "records"></div>
                    </div>
                </section><!-- /.content -->
            </div><!-- /.content-wrapper -->
        </div><!-- ./wrapper -->

        <!-- Modal for show more details about country -->
        <div class = "modal fade" id = "countryModal" tabindex = "-1" role = "dialog" aria-labelledby = "exampleModalLabel" aria-hidden = "true">
            <div class = "modal-dialog" role = "document">
                <div class = "modal-content">
                    <div class = "modal-header">
                        <h5 class = "modal-title" id = "exampleModalLabel">More details about the country</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>
                    <div class = "modal-footer">
                        <!--<button type = "button" class = "btn btn-secondary" data-dismiss = "modal">Close</button>-->
                        <!--<button type = "button" class = "btn btn-primary">Save changes</button>-->
                    </div>
                </div>
            </div>
        </div>

        <!-- Modal for show details about city -->
        <div class = "modal fade" id = "cityModal" tabindex = "-1" role = "dialog" aria-labelledby = "exampleModalLabel" aria-hidden = "true">
            <div class = "modal-dialog" role = "document">
                <div class = "modal-content">
                    <div class = "modal-header">
                        <h5 class = "modal-title" id = "exampleModalLabel">City details</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>
                    <div class = "modal-footer">
                        <!--<button type = "button" class = "btn btn-secondary" data-dismiss = "modal">Close</button>-->
                        <!--<button type = "button" class = "btn btn-primary">Save changes</button>-->
                    </div>
                </div>
            </div>
        </div>

        <!-- Modal to update HOS -->
        <div class = "modal fade" id = "updateModal" tabindex = "-1" role = "dialog" aria-labelledby = "exampleModalLabel" aria-hidden = "true">
            <div class = "modal-dialog" role = "document">
                <div class = "modal-content">
                    <div class = "modal-header">
                        <h5 class = "modal-title" id = "exampleModalLabel">Edit details</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>

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

        <!-- Modal to upload flag -->
        <div class = "modal fade" id = "uploadModal" tabindex = "-1" role = "dialog" aria-labelledby = "exampleModalLabel" aria-hidden = "true">
            <div class = "modal-dialog" role = "document">
                <div class = "modal-content">
                    <div class = "modal-header">
                        <h5 class = "modal-title" id = "exampleModalLabel">Upload Flag</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>
                </div>
            </div>
        </div>
    </body>
</html>

<!-- REQUIRED JS SCRIPTS -->
<script
    src = "https://code.jquery.com/jquery-3.3.1.min.js"
    integrity = "sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8 = "
    crossorigin = "anonymous">
<script src = "http://code.jquery.com/jquery-3.1.1.min.js"></script>
<!-- jQuery 3 -->
<script src = "template/other_pages/bower_components/jquery/dist/jquery.min.js"></script>
<!-- Bootstrap 3.3.7 -->
<script src = "template/other_pages/bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
<!-- AdminLTE App -->
<script src = "template/other_pages/dist/js/adminlte.min.js"></script>

<!--script for displaying continents and countries records-->  
<script type = "text/javascript"> 
    $(document).ready(function(){
        //$('#searchTextBox').hide();
        $('.records').hide();

        $("input[name='search_country']").on('keypress', function (e) {
            var charCode = e.which;
            if ((charCode > 64 && charCode < 91) || (charCode > 96 && charCode < 123) || charCode == 8)
                return true;
            else
                return false;
        });
    });

    $(function()
    {
        $.getJSON( "showAllContinents.php", function(obj) 
        { 
            $.each(obj, function(key, value) 
            { 
                var sidebarOption = "";
                //sidebarOption = '<input type = "hidden" value = "showAllContinents" name = "action"/>';
                sidebarOption += '<li>';
                sidebarOption += '<a data-id = "'+value.ID+'" class = "sidebar-country">';
                sidebarOption += value.Name;
                sidebarOption += '</a>';
                sidebarOption += '</li>';

                $(".treeview-menu").append(sidebarOption);
            });
        });//end of $.getJSON function

        $("#options_continent").change(function() {
            getCountryRecords($(this).val());
        });//end of option function      

        $(document).on('click', '.sidebar-country', function() {
            getCountryRecords($(this).attr('data-id'));
        });

        //to show LifeExpectancy, GNP and HOS when button is clicked    
        $("#records").on("click", "#tbl_countries button#more_details",function()
        {
            $(".modal-body").empty();
            var A3Code = $(this).val();
            $(".records").show();
            $.get( 
                'showCountryDetails.php',
                {A3Code: A3Code},
                function(data)
                {
                    console.info(data);
                    //var result= $.parseJSON(data);
                    //console.info(result);
                    var string ='<table id = "tbl_countries" class = "table table-bordered table-hover"><tr><th>Life Expectancy</th><th>GNP</th><th>Head of State</th></tr>';
                    $.each( data, function( key, value ) 
                    { 
                        $(".records").empty();
                        string  += "<tr>"
                                +"<td>"+value['LifeExpectancy'] +"</td>"
                                +"<td>"+value['GNP']+"</td>"
                                +"<td>"+value['HeadOfState']+"</td>"
                                +"</tr>";
                    }); 

                    string += '</table>'; 
                    $(".modal-body").append(string);
                } //end of function data
            ); //end of get

        });//end of click button 


        //to show city details when button is clicked   
        $("#records").on("click", "#tbl_countries button#city_details",function()
        {
            $(".modal-body").empty();
            var A3Code = $(this).val();
            $(".records").show();
            $.get( 
                'showCityDetails.php',
                {A3Code: A3Code},
                function(data)
                {
                    var string ='<table id = "tbl_countries" class = "table table-bordered table-hover"><tr><th>City Name</th><th>District</th><th>Population</th><th>Latitude</th><th>Longitude</th></tr>';
                    $.each( data, function( key, value ) 
                    { 
                        $(".records").empty();
                        string  += "<tr>"
                                +"<td>"+value['name'] +"</td>"
                                +"<td>"+value['district']+"</td>"
                                +"<td>"+value['population']+"</td>"
                                +"<td>"+value['lat']+"</td>"
                                +"<td>"+value['lng']+"</td>"
                                +"</tr>";
                    }); 

                    string += '</table>'; 
                    //$(".records").append(string);
                    $(".modal-body").append(string);
                } //end of function data
            ); //end of get

        });//end of click button 


        //to update HOS modal box   
        $("#records").on("click", "button#update_HOS",function()
        {
            $(".modal-body").empty();
            var A3Code = $(this).val();
            $(".records").show();
            $.get( 
                'showCountryDetails.php',
                {A3Code: A3Code},
                function(data)
                {
                    console.info(data);
                    var forms='';

                    $.each( data, function( key, value ) 
                    { 
                        forms +='<form id = "updateForm" name = "updateForm" action = "updateHOS.php" method = "post">';
                        forms +='<div class = "form-group">';
                        forms +='<input type = "hidden" id = "A3Code" name = "A3Code" value='+value["A3Code"]+'>';
                        forms +='<label class = "control-label">HOS:</label>';
                        forms +='<input type = "text" class = "form-control" id = "hos" name = "hos" value='+value['HeadOfState']+'>';
                        forms +='</div>';
                        forms += '<div class = "form-group">'; 
                        forms += '<input type = "submit" class = "btn-success" id = "updateBtn" name = "updateBtn" value = "Update">';
                        forms +='</div>';                   
                        forms +='</form>';
                    }); 

                    $(".modal-body").append(forms);
                } //end of function data
            ); //end of get
        });//end of click button */


        //to show upload flag modal box 
        $("#records").on("click", "button#upload_flag",function()
        {
            $("#uploadModal .modal-body").empty();
            var A3Code = $(this).val();

            $(".records").show();
            $.get( 
                'showCountryDetails.php',
                {A3Code: A3Code},
                function(data)
                {
                    console.info(data);
                    var uploadForm='';

                    $.each( data, function( key, value ) 
                    { 
                        uploadForm +='<form id = "uploadFlagForm" name = "uploadFlagForm" action = "upload_flag.php" method = "post" enctype = "multipart/form-data">';
                        uploadForm +='<div class = "form-group" align = "center">';
                        uploadForm +='<input type = "hidden" id = "A3Code" name = "A3Code" value='+value["A3Code"]+'>';
                        uploadForm +='<input type = "file" name = "fileToUpload" id = "fileToUpload">';
                        uploadForm +='</div>';
                        uploadForm += '<div class = "form-group" align = "center">'; 
                        uploadForm += '<button type = "submit" class = "btn btn-primary" id = "uploadBtn" name = "uploadBtn">Upload Flag</button>';
                        uploadForm +='</div>';                  
                        uploadForm +='</form>';
                    }); 

                    $("#uploadModal .modal-body").append(uploadForm);
                } //end of function data
            ); //end of get
        });//end of click button 

        //To get country records    
        function getCountryRecords(id) {
            $.ajax
            ({
                url: 'showCountryInfo.php',
                type: 'post',
                data: {ID:id},
                success:function(response)
                {
                    var userRole = "<?php echo $userRole; ?>";

                    var string = "";

                    //string += '<input type = "hidden" value = "showCountryInfo" name = "action"/>';
                    string += '<table id = "tbl_countries" class = "table table-bordered table-hover">';
                    string += '<tr>';
                    string += '<th>Flag</th>';
                    string += '<th>Country Name</th>';
                    string += '<th width=200px>Region</th>';
                    string += '<th>Surface Area</th>';
                    string += '<th>Population</th>';
                    string += '<th width=150px>Independent Year</th>';
                    string += '<th width=100px>City Details</th>';
                    if (userRole === "admin")
                    {
                        string += '<th width=100px>More Details</th>';
                        string += '<th width=100px>Update Details</td>';
                        string += '<th width=100px>Upload Flag</td>';
                    }
                    string += '</tr>';


                /* from result create a string of data and append to the div */
                $.each( response, function( key, value ) 
                {
                    //var base64URL = "";

                    $("#records").empty();
                    string += "<tr>";
                    //string += "<td><img src='"+value['image']+"'/></td>";
                    //string += "<td><img src='data:image/png;base64, "+base64URL+"'/></td>";
                    string += "<td>"+"<button class='btn btn-block btn-default btn-sm' id='btnView' name='btnView' type='submit' data-id='" + value['A3Code'] + "'>View</button>" + "</td>";
                    //string += "<td>"+"<button class='btn btn-block btn-default btn-sm' id='btnView' name='btnView' type='submit' value='" + value['A3Code'] + "'>View</button>" + "</td>";
                    string += "<td>"+value['Name']+"</td>";
                    string += "<td>"+value['Region']+"</td>";
                    string += "<td>"+value['SurfaceArea']+"</td>";
                    string += "<td>"+value['Population']+"</td>";
                    string += "<td>"+value['IndepYear']+"</td>";
                    string += "<td>"+"<button class='btn btn-block btn-info btn-sm' data-toggle='modal' data-target='#cityModal' id='city_details' name='city_details' type='submit' value='" + value['A3Code'] + "'><span class='glyphicon glyphicon-info-sign'></button>" + "</td>";
                    if (userRole === "admin")
                    {
                        string += "<td>"+"<button class='btn btn-block btn-info btn-sm' data-toggle='modal' data-target='#countryModal' id='more_details' name='country_details' type='submit' value='" + value['A3Code'] + "'><span class='glyphicon glyphicon-info-sign'></button>" + "</td>";
                        string += "<td>"+"<button class='btn btn-block btn-default btn-sm' data-toggle='modal' data-target='#updateModal' id='update_HOS' name='update_HOS' type='submit' value='" + value['A3Code'] + "'><i class='fa fa-edit'></i></button>" + "</td>";
                        string += "<td>"+"<button class='btn btn-block btn-default btn-sm' data-toggle='modal' data-target='#uploadModal' id='upload_flag' name='upload_flag' type='submit' value='" + value['A3Code'] + "'><i class='fa fa-flag'></i></button>" + "</td>";
                    }
                        string += "</tr>";
                }); 

                string += '</table>'; 
                $("#records").append(string); 
            }
        });
    }

        /*$(document).on('click', '#btnView', function(){
            window.location.href = "view_flag.php"; 
        });*/

        $(document).on('click', '#btnView', function(){
            var value = $(this).attr('data-id');
            window.location.href = "view_flag.php?A3Code = " + value; 
        });

        /*//For view flag function
        $("#btnView").on('click', function(e) {
            window.location.href = "view_flag.php";  
        });*/

        /*$("#view_flag").on("click",function()
        {
            window.location.href = "view_flag.php";  
        });*/



        //For search country function
        $("#search-btn").on("click", function () 
            {   
                if (document.getElementById("search").value.length < 3)
                {
                    alert("The characters MUST NOT be less than 3!");
                    return false;
                }

                $("#records").empty();
                $(".records").empty();
                $('.searchResults').empty();

                var searchCountry = $("#search").val();

                $.get(
                        'searchCountryInfo.php',
                        {id: searchCountry}, //left->sql id ,right->script id
                        function (data)
                        {
                            if (!$.trim(data)){   
                                alert("No country with that name is found!");
                                return false;
                            }

                            var userRole = "<?php echo $userRole; ?>";

                            var string = "";
                            //string += '<input type = "hidden" value = "searchCountryInfo" name = "action"/>';
                            string += '<table id = "tbl_countries" class = "table table-bordered table-hover">';
                            string += '<tr>';
                            string += '<th>Flag</th>';
                            string += '<th>Country Name</th>';
                            string += '<th width=200px>Region</th>';
                            string += '<th>Surface Area</th>';
                            string += '<th>Population</th>';
                            string += '<th width=150px>Independent Year</th>';
                            string += '<th width=100px>City Details</th>';
                            if (userRole === "admin")
                            {
                                string += '<th width=100px>More Details</th>';
                                string += '<th width=100px>Update Details</td>';
                                string += '<th width=100px>Upload Flag</td>';
                            }
                            string += '</tr>';

                            // var base64URL = getBase64(data[0]['image']);
                            // console.info(base64URL);

                            /* from result create a string of data and append to the div */
                            $.each( data, function( key, value ) 
                            { 

                                $("#records").empty();
                                string += "<tr>";
                                //string += "<td>"+"<img src='data:image/png;base64,base64_encode("+value['image']+")"+"'/>"+"</td>";
                                //string += "<td>"+"<img src='data:image/jpeg;base64, "+base64URL+"'/></td>";
                                string += "<td>"+"<button class='btn btn-block btn-default btn-sm' id='btnView' name='btnView' type='submit' data-id='" + value['A3Code'] + "'>View</button>" + "</td>";                                string += "<td>"+value['Name']+"</td>";
                                string += "<td>"+value['Region']+"</td>";
                                string += "<td>"+value['SurfaceArea']+"</td>";
                                string += "<td>"+value['Population']+"</td>";
                                string += "<td>"+value['IndepYear']+"</td>";
                                string += "<td>"+"<button class='btn btn-block btn-info btn-sm' data-toggle='modal' data-target='#cityModal' id='city_details' name='city_details' type='submit' value='" + value['A3Code'] + "'><span class='glyphicon glyphicon-info-sign'></button>" + "</td>";
                                if (userRole === "admin")
                                {
                                string += "<td>"+"<button class='btn btn-block btn-info btn-sm' data-toggle='modal' data-target='#countryModal' id='more_details' name='country_details' type='submit' value='" + value['A3Code'] + "'><span class='glyphicon glyphicon-info-sign'></button>" + "</td>";
                                string += "<td>"+"<button class='btn btn-block btn-default btn-sm' data-toggle='modal' data-target='#updateModal' id='update_HOS' name='update_HOS' type='submit' value='" + value['A3Code'] + "'><i class='fa fa-edit'></i></button>" + "</td>";
                                string += "<td>"+"<button class='btn btn-block btn-default btn-sm' data-toggle='modal' data-target='#uploadModal' id='upload_flag' name='upload_flag' type='submit' value='" + value['A3Code'] + "'><i class='fa fa-flag'></i></button>" + "</td>";
                                }
                            string += "</tr>";
                            }); 

                            string += '</table>'; 
                            $("#records").append(string); 
                        }
                    );
                }); // end of search function

    }); //end of big function
</script>   

Мы будем очень благодарны за вашу помощь. Спасибо.

Проверьте тело ответа в сети инструментов разработчика браузера. Увидит, что вместе с данными возвращается ошибка php.

charlietfl 13.12.2018 18:49

Показывает ошибку в searchCountryInfo.php. Из Невозможно изменить информацию заголовка - заголовки уже отправлены

Nigel Ren 13.12.2018 19:08

Спасибо, ребята, за ответ. Я наконец решил это, вставив эту строку data = JSON.parse (data); перед каждой строкой, содержащей $ .each (данные, функция (ключ, значение), а также удалить заголовок ('Content-Type: application / json'); на каждой странице PHP

Naz Azhar 14.12.2018 07:10
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
623
0

Другие вопросы по теме