在页面加载时调用一些jQuery

时间:2011-05-27 14:23:09

标签: php javascript ajax jquery

我有一个ajax加载函数,当在页面上方点击<a><a/>时使用jQuery。

这也会触发种植cookie,以便在用户回来时保留打开的文档。

<a id="request" onClick="createCookie('foobar')">Click me</a>

<div id="result"  class="functions">
</div>
<script type="text/javascript">
        $.ajaxSetup ({
                cache: false
        });
        var ajax_load = "<img class='loading' src='loading.gif' alt='loading...' />";

        var loadUrl<?=$request->id?> = "viewrequest.php?id=<?=$request->id?>";
        $("#display").click(function(){
                $("#result").html(ajax_load).load(loadUrl);
                        var loaded<?=$request->id?> = 1
        });
</script>
</div>

工作正常。我想要做的是使用php来查看cookie是否存在(简单)。

if(isset($_COOKIE['foobar']))

然后,触发AJAX。

这就是我无法解决的问题。我假设&lt;中的id =“request” a&gt;单击时会触发AJAX,但我无法想象如何在php if循环中加载它。

3 个答案:

答案 0 :(得分:1)

这应该可以解决问题(未经测试,但逻辑很好)

<?php if(isset($_COOKIE['foobar'])): ?>

<script type="text/javascript">
    $(document).ready(function(){
       var ajax_load = "<img class='loading' src='loading.gif' alt='loading...' />";

        var loadUrl<?=$request->id?> = "viewrequest.php?id=<?=$request->id?>";
        $("#display").click(function(){
                $("#result").html(ajax_load).load(loadUrl);
                        var loaded<?=$request->id?> = 1
        });
    });
</script>

<?php endif; ?>

答案 1 :(得分:0)

使用

$(window).load(function(){
    //code
});

$(document).ready(function(){
    //code
});

取决于您实际需要执行的时间。

window.load将等待加载完整的DOM。

文档就绪并不等待所有请求完成

答案 2 :(得分:0)

PHP无法直接触发javascript。请记住,PHP在服务器上执行,而Javascript在客户端上执行。

最多,PHP可以在构建页面时输出一小段javascript,并将函数调用嵌入到该代码段中&gt;

<?php
if (isset($_COOKIE['foobar'])) {
    echo <<<EOL
<script type="text/javascript">
    the_cookie_is_set();
</script>
EOL;
}
?>

然后在客户端加载/处理页面时运行您的函数。

但是,由于您使用的是AJAX,这意味着您已经将Javascript发送到服务器并获得响应。为什么不使用响应处理程序来触发该函数?