PHP中的echo jQuery函数作为变量

时间:2012-11-30 20:18:01

标签: php jquery ajax

好的,我试图在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 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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();

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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