我有一个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循环中加载它。
答案 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发送到服务器并获得响应。为什么不使用响应处理程序来触发该函数?