首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用jQuery的'load()‘加载带有内部PHP include函数的外部PHP文件

使用jQuery的'load()‘加载带有内部PHP include函数的外部PHP文件
EN

Stack Overflow用户
提问于 2013-04-03 00:12:32
回答 2查看 7K关注 0票数 1

我有一个网站正在开发与“新闻”部分和“旧新闻”部分。新闻被单独存储在服务器通过PHP加载的外部PHP文件中(服务器会统计PHP文件的数量,并在“新闻”部分显示最后一条新闻,在“旧新闻”部分显示所有其他新闻:

代码语言:javascript
代码运行次数:0
运行
复制
<!-- ####### 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触发器可见:

代码语言:javascript
代码运行次数:0
运行
复制
// Show old NEWS
$('a#showoldnews').click(function () {
    $('#oldnews').show(400);
});

但从长远来看,我预计会出现问题:由于所有新闻都是首先加载的,这意味着随着越来越多的新闻出现,网站的加载速度将会变慢。即使它是“可接受的”,它仍然不是理想的解决方案。

我在考虑使用jQuery.load()加载一个外部PHP文件,然后只在用户请求时才加载旧新闻。

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

代码语言:javascript
代码运行次数:0
运行
复制
<?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‘文件:

代码语言:javascript
代码运行次数:0
运行
复制
<script type="text/javascript">
    $('#oldnews').load('load.php');
</script>

load.php文件的内容为:

代码语言:javascript
代码运行次数:0
运行
复制
<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>

"TOP“和"HIDE”链接出现时没有任何问题。但是,PHP块似乎根本不会被处理……

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-03 00:37:43

PHP 可以在jQuery抓取内容之前运行...这是我设置和测试的.

test.html

代码语言:javascript
代码运行次数:0
运行
复制
<!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

代码语言:javascript
代码运行次数:0
运行
复制
<?php
    echo 'Hi';
?>

结果是#feeds .innerHTML是"Hi"..。我想要更多的信息/代码来复制这种情况。看一眼the jQuery load API documentation可能会有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2017-06-30 18:58:48

正如@joseph告诉我的那样,它是正确的,并对我有所帮助,但在mycase中,我想隐藏外部Php文件的内容,

下面是我的代码修改,这对我很有帮助!

代码语言:javascript
代码运行次数:0
运行
复制
<!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

代码语言:javascript
代码运行次数:0
运行
复制
<?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>";


?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15768995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档