好的,我试图在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是在页面末尾加载的。
提前谢谢。
答案 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。