使用PHP在浏览器中有条件地呈现Javascript函数调用
我有一个按钮,可以在点击时成功触发“加载更多”。单击后,将设置一个会话变量,这样当用户重新加载页面时,新帖子应该显示为已加载,因此用户无需再次单击“加载更多” 因此,我希望根据是否设置了会话或COOKIE,在PHP IF语句中呈现相同的“加载更多”Javascript函数:使用PHP在浏览器中有条件地呈现Javascript函数调用,javascript,php,if-statement,Javascript,Php,If Statement,我有一个按钮,可以在点击时成功触发“加载更多”。单击后,将设置一个会话变量,这样当用户重新加载页面时,新帖子应该显示为已加载,因此用户无需再次单击“加载更多” 因此,我希望根据是否设置了会话或COOKIE,在PHP IF语句中呈现相同的“加载更多”Javascript函数: <?php if ((isset($_SESSION['isloaded'])) || (isset($_COOKIE['isloaded']))){ echo '<script>loadmore(\'po
<?php
if ((isset($_SESSION['isloaded'])) || (isset($_COOKIE['isloaded']))){
echo '<script>loadmore(\'posts\');</script>';
}
else {
echo '<a href="#" onClick="return false" onmousedown="javascript:loadmore(\'posts\');" class="btn btn-primary" id="load-more-btn">Load More</a>';
}
?>
但是,页面呈现后不会触发Javascript。我做错了什么?要让JavaScript自动运行,可以使用
...
或许
<body onload="conditionally_loadmore('posts')">
<?php
if ((isset($_SESSION['isloaded'])) || (isset($_COOKIE['isloaded']))){
// Only have the function do something if we really want to.
echo '<script>function conditionally_loadmore(s) {';
echo ' loadmore(s); ';
echo '}</script>';
}
else {
echo '<script>function conditionally_loadmore(s) {';
echo ' // Do nothing. ';
echo '}</script>';
echo '<a href="#" onClick="return false" onmousedown="javascript:loadmore(\'posts\');" class="btn btn-primary" id="load-more-btn">Load More</a>';
}
?>
或者,正如@Astaroth所建议的:
<body
<?php
if ((isset($_SESSION['isloaded'])) || (isset($_COOKIE['isloaded']))) {
echo 'onload="loadmore(\'posts\')"';
}
?>
>...
正如@Austin和@Angry Coder所说的,检查您的控制台是否有错误
另外,确保在调用函数之前定义了函数loadmore()
。因此,要么将函数声明置于loadmore('posts')之上
在onload
或类似的情况下调用或添加调用
另一件事,为了清晰起见,您可以编写如下代码(但这是一种观点):
loadmore(“posts”);
与此代码段相关的loadmore
函数定义在哪里?在尝试调用它之前,应该先定义它。检查浏览器控制台是否有错误。能否添加代码的javascript部分谢谢@Austin,事实上,我的javascript是在文档末尾加载的,这就是它无法工作的原因!不是重复的问题,只是标题有点误导我想这是OP需要的,只是澄清一下他应该添加类似
的onload=“loadmore('posts')”
,以便在满足“cookie条件”时插入onload。以防OP看不到谁应用你的答案。
<body
<?php
if ((isset($_SESSION['isloaded'])) || (isset($_COOKIE['isloaded']))) {
echo 'onload="loadmore(\'posts\')"';
}
?>
>...
<?php if ((isset($_SESSION['isloaded'])) || (isset($_COOKIE['isloaded']))) { ?>
<script>loadmore('posts');</script>
<?php } else { ?>
<a href="#" onClick="return false" onmousedown="javascript:loadmore('posts');" class="btn btn-primary" id="load-more-btn">Load More</a>
<?php } ?>