【问题标题】:PHP echo functions not working in php page loaded dynamically with jQuery .loadPHP echo函数在使用jQuery .load动态加载的php页面中不起作用
【发布时间】:2015-01-26 07:57:44
【问题描述】:

这是我的 wordpress 安装的 index.php 和 desktop.php。如果浏览器窗口宽度大于 800 像素,我会将 desktop.php 加载到 #tLoad 中。到现在为止还挺好。但我想用 php echo 加载它。在 desktop.php 我想使用等,但它也不起作用。我收到一条错误消息,上面写着“致命错误:调用未定义的函数..”等等。我知道我可能必须使用某种 AJAX 调用,但我想不通..

如何使 php 函数在脚本和 desktop.php 中工作?

<?php 
     /* Template Name: Start */
?>        
<?php get_header(); ?>

<script type="text/javascript">
    $(document).ready(function() {
        function o() {
            if (ww > 800) {
                if ($.browser.device == false) {
                    e.load(n);
                } else {
                    e.load(r);
                }
            } else if (ww < 800) {
                e.load(r);
            }
        }
        isHome = true;
        var e = $("#tLoad"),

        // This is the first php echo that's not working (I have to put in the direct url to make it work):          
        n = "<?php echo get_template_directory_uri(); ?>/desktop.php",
        r = "<?php echo get_template_directory_uri(); ?>/mobile_v.php";

        $(window).resize(function() {
            ww = win.width();
            o()
        });

        o()
    });
</script>

<div id="tLoad"></div>

<?php get_footer(); ?>

桌面.php:

<?php the_content(); ?>

【问题讨论】:

  • 您不能混合使用 PHP(服务端脚本)和 Javascript(客户端脚本)。为什么不使用 PHP 来获取客户端的 Vieport?
  • hmmm,奇怪的是,即使你的php没有被调用,那些都是变量,错误怎么会是“未定义的函数”?
  • 如何使用 PHP 获取客户端的视口?
  • 您可能需要考虑使用wp_localize_script() 将 PHP 变量传递给 JS。不过,您必须在使用 JS 之前将其排入队列。

标签: javascript php jquery ajax wordpress


【解决方案1】:

我收到一条错误消息“致命错误:调用未定义的函数..”

get_template_directory_uri() 位于wp-includes/theme.php。在调用函数之前,您必须确保包含了 theme.php。使用

include_once "wp-includes/theme.php";

在致电get_template_directory_uri()之前

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-12
    • 1970-01-01
    • 2021-10-01
    • 1970-01-01
    • 2012-12-02
    • 2021-11-24
    • 2012-12-29
    • 1970-01-01
    相关资源
    最近更新 更多