Я пытаюсь загрузить контент на свой сайт с помощью Ajax и jQuery. Вот мой код:

var default_content="";

$(document).ready(function(){ 
    checkURL();

    $('ul li a').click(function (e){ 
        checkURL(this.hash);  
    });

    setInterval("checkURL()",250); 
});

var lasturl=""; //here we store the current URL hash

function checkURL(hash)
{
    if(!hash) hash=window.location.hash;

    if(hash != lasturl)
    {
        lasturl=hash;

        if(hash=="")
        $('#pageContent').html(default_content);

        else
        loadPage(hash);
    }
}



function loadPage(url)  
{
    var datastring=url.replace('#','');    

    $('#loading').css('visibility','visible');  

    $.ajax({
        type: "POST",
        url: "load_page.php",
        data: 'datastring='+datastring, 
        dataType: "html",
        success: function(msg){

            if(parseInt(msg)!=0)
            {
                $('#pageContent').html(msg);
                $('#loading').css('visibility','hidden');
            }
        }

    });

}

А вот мой PHP-код

<?php
    if(!$_POST['page']) die("0");

    $page = (int)$_POST['page'];

    if(file_exists('pages/page_'.$page.'.html'))
    echo file_get_contents('pages/page_'.$page.'.html');

    else echo 'There is no such page!';
?>

Я новичок в программировании, любая помощь будет оценена по достоинству

-2
Akande Olawale 22 Дек 2017 в 02:01

1 ответ

Лучший ответ

В вашем php-скрипте вы обращаетесь не к тому ключу. Вы отправляете dataString через ajax. Это должен быть тот же ключ, к которому вы обращаетесь в массиве $_POST

Должно быть:

 $_POST['datastring']

Используйте empty(), чтобы проверить, существует ли ключ datastring

if(empty($_POST['datastring'])) {

 die("0");

}
0
Rotimi 22 Дек 2017 в 08:22