载入与内部PHP外部PHP文件包括功能通过使用jQuery的“负载()”(Loading an ex

2019-09-27 02:40发布

我正在开发一个网站与“旧新闻”栏目是“新闻”栏目和。 这一消息是单独存储在外部PHP这是由服务器通过PHP加载的文件(服务器计算的PHP文件数和显示最后一个-目前的消息-在“新闻报”的部分,所有的人在“旧新闻”栏目:

<!-- ####### NEWS ####### -->

<div id="news">
    <h2>NEWS</h2>

    <div>
        <a id="showoldnews" href="#news">OLDER</a>
    </div>

    <?php $directory = "assets/news/"; if (glob($directory . "*.php") != false) { $newscount = count(glob($directory . "*.php")); } else {} ?>

    <?php include('assets/news/news' . $newscount . '.php'); ?>

    <!-- ####### OLDER NEWS ####### -->

    <div id="oldnews">
        <h2>OLDER NEWS</h2>

        <?php
            $newscount = $newscount-1;
            while ($newscount>0) {
                include('assets/news/news' . $newscount .'.php');
                --$newscount;
            }
        ?>
    </div>

在“旧新闻”栏目最初是隐藏的,只有通过一个jQuery触发可见:

// Show old NEWS
$('a#showoldnews').click(function () {
    $('#oldnews').show(400);
});

但我期待在长期的问题:因为所有的消息都首先加载,这意味着有越来越多的消息来了的网站会被加载速度较慢。 而即使是“可接受的”,它仍然不是理想的解决方案。

我想利用jQuery.load()加载外部PHP文件,那么这将只有当用户请求加载它的旧闻。

问题是,我不知道是否可能通过使用加载以下脚本jQuery.load()的链接用户点击后:

<?php
    $directory = "assets/news/";
    if (glob($directory . "*.php") != false) {
        $newscount = count(glob($directory . "*.php"));
    }
    else {
    }
?>
<?php
    include('assets/news/news' . $newscount . '.php');
?>

它这种做法是否可以接受? 我都试过了,但它并没有在所有的工作(我可以负载静态内容load()函数,但我不能够使服务器进程的PHP脚本。我不知道是否有可能使服务器进程的PHP代码,因为网站开始加载...这是情况并非如此前PHP处理在服务器端完成。

更新#1

我有一个加载来自服务器的“load.php”文件如下:

<script type="text/javascript">
    $('#oldnews').load('load.php');
</script>

该load.php文件的内容是:

<div class="section" id="oldnews">
    <h2>OLDER NEWS</h2>

    <div class="topLink">
        <a href="#">TOP</a>
    </div>

    <div class="topLink2">
        <a id="hideoldnews" href="#news">HIDE</a>
    </div>

    <?php
        $newscount = $newscount-1;
        while ($newscount>0) {
            include('assets/news/news' . $newscount .'.php');
            --$newscount;
        }
    ?>
</div>

“顶”和“隐藏”链接显示没有任何问题。 然而,PHP块似乎根本不处理...

Answer 1:

PHP 可以抓住的jQuery内容之前运行...以下是我安装和测试...

的test.html

<!DOCTYPE HTML>
<html>
    <head>
        <script type="text/JavaScript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    </head>

    <body>
        <div id="feeds"><b>45</b> feeds found.</div>
        <script type="text/JavaScript">
            $("#feeds").load("go.php");
        </script>
    </body>
</html>

go.php

<?php
    echo 'Hi';
?>

其结果是, #feeds .innerHTML是“Hi” ......我会在复制的情况下爱的更多信息/代码。 这可能有助于采取在偷看jQuery的负载API文档 。



Answer 2:

作为@joseph告诉其正确和帮助我,但在我mycase想隐藏外部PHP文件的内容,
下面是我的代码变化,这帮助了我!

<!DOCTYPE HTML>
<html>
    <head>
        <script type="text/JavaScript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    </head>

    <body>
    <b>Db file result</b>
        <div id="feeds" hidden=""></div>
        <script type="text/JavaScript">
            $("#feeds").load("db.php");
        </script>
    </body>
</html>

我的PHP文件有数据库连接,所以我不得不隐藏它,db.php中

<?php

session_start();

$db = pg_connect("host=ec2-xxx-x0-xxx-xx.compute-1.amazonaws.com port=5432 dbname=dxxxxxxxxx user=vxxxxxxxxxx password=1xxxxxxxxxxxxxxxxxxxxxxxxxxxxd");
 pg_select($db, 'post_log', $_POST);


 $query=pg_query("(SELECT id,name, FROM organization WHERE is_active = 'true' AND account_token = '".$_SESSION['account_token']."');


 $json=array();
while ($student = pg_fetch_array($query)) {
    $json[$student["is_user"]."-".$student["id"]] = $student["name"]."-".$student['pan'];
}

$textval = json_encode($json);
$foo = "var peoplenames=" . $textval;

file_put_contents('autocomplete-Files/'.$_SESSION['account_token'].'.js', $foo);

echo "<script>location='filename.php'</script>";


?>


文章来源: Loading an external PHP file with an internal PHP include function by using jQuery's 'load()'