0

好的,所以我试图从 PHP 内部的 jQuery 中回显一个函数。

我搜索了一下,我没有找到任何确切的答案,但我发现我需要使用 ajax 吗?

我不熟悉ajax,所以我发现了这个。

<?php 
    $status = "<script>
                 $.ajax({ 
                    url: '/',
                    data: {action: 'test'},
                    type: 'post',
                    success: function(output) {
                       notifyBox();
                    }
                 });
               </script>";
?>

我在页面的某处也有这部分:

<?php if(isset($status)) { echo $status; } ?>

我不太确定是否需要所有这些来执行该功能?但它只有在我将 jQuery 放在网站的头部时才有效。

我通常把我所有的脚本都放在上面</body>(在结束标记处),现在如果我必须把所有这些脚本放在头上,我会很困扰

由于页面很多,我现在无法将所有脚本分开,只是因为此刻困扰我的一页。

谁能告诉我,我如何调用该函数而不会出现未定义的“$”的控制台错误,因为 jQuery 是在页面末尾加载的。

先感谢您。

4

4 回答 4

2

只要您确保将 PHPif语句放在包含 jQuery的标记之后,这应该可以工作。<script>

于 2012-11-30T20:23:03.120 回答
1

问题是由回显该变量时未加载 jQuery 引起的。当 Javascript 看到一个函数调用时,它会立即执行它。为了防止这种情况,您需要在加载 jQuery 后回显您的变量。

例子:

<script type="text/javascript" src="path/to/jquery.js"></script>
<?php
    echo $script;
?>

或者,您可以将 AJAX 调用放入稍后调用的函数中:

<?php
    $script = '<script type="text/javascript">function myFunc() {
        //Call AJAX here
    }
    </script>';
    echo $script;
?>

然后,您可以调用您的函数:myFunc();

于 2012-11-30T20:24:17.817 回答
0

确保已加载 jquery。这应该有效:

$status = "<script type='text/javascript'>
                $(function(){
                   $.ajax({ 
                    url: '/',
                    data: {action: 'test'},
                    type: 'post',
                    success: function(output) {
                       notifyBox();
                    }
                 });
               });
               </script>";
于 2012-11-30T20:24:58.580 回答
0

$(document).ready() 也是一个 jquery 函数,因此,请尝试使用 window.onload。

于 2012-11-30T20:27:49.297 回答