我使用旧的CMS和其中一个我想要插入投票系统+1或-1的模块。 问题是该模块是用PHP编写的,并且无法调用JS。也许我做错了什么。
我试图改变路径 - 它没用......直接调用脚本“modules / Forum / down_vote.php”受保护的服务器。
初始化jQuery,我需要PHP中的一个函数:
print ("<script type=\"text/javascript\" src=\"modules/Forum/jquery.js\"></script>
<script type=\"text/javascript\">
$(function() {
$('.vote').click(function() {
var id = $(this).attr(\"id\");
var name = $(this).attr(\"name\");
var dataString = 'id='+ id ;
var parent = $(this);
if(name=='down')
{
$(this).fadeIn(200).html('<img src=\"modules/Forum/dot.gif\" align=\"absmiddle\">');
$.ajax({type: \"POST\", url: \"modules/Forum/down_vote.php\", data: dataString, cache: false, success: function(html)
{ parent.html(html);}
});
}
else
{
$(this).fadeIn(200).html('<img src=\"modules/Forum/dot.gif\" align=\"absmiddle\">');
$.ajax({type: \"POST\", url: \"modules/Forum/up_vote.php\", data: dataString, cache: false, success: function(html)
{ parent.html(html);
} });
}
return false;
});
});
</script>");
投票按钮:
echo "<div class=\"box1\"><div class=\"up\"><a href=\"#\" class=\"vote\" title=\"+ 1\" alt=\"+ 1\" id=".$row["id"]." name=\"up\">".$up."</a></div>"
."<div class=\"down\"><a href=\"#\" class=\"vote\" title=\"- 1\" alt=\"- 1\" id=".$row["id"]." name=\"down\">".$down."</a></div></div>\n";
答案 0 :(得分:2)
1 .- 似乎您真的不需要print
所有js代码。这将是相同的:
<?php
// php code
?>
<script type="text/javascript" src="modules/Forum/jquery.js"></script>
<script type="text/javascript">
$(function() {
// ...
});
</script>
<?php
// php code
?>
如果您需要满足某些条件来编写/运行此代码,请执行以下操作:
<?php
// php code
if ($condition) : // start js code
?>
<script type="text/javascript" src="modules/Forum/jquery.js"></script>
<script type="text/javascript">
$(function() {
// ...
});
</script>
<?php
endif; // end js code
// php code
?>
2 .- 显然你的jquery代码是对的。确保您的CMS提供了获取网站网址的方法。像codeigniter或wordpress中的site_url()
之类的东西。我建议你用它来确定你的AJAX调用中的$ path_to_your_modules。
$.ajax({
type: "POST",
url: "<?php echo $path_to_your_modules; ?>/modules/Forum/down_vote.php",
data: dataString,
cache: false,
dataType : "html", // add this to format as html
success: function(html){
parent.html(html);
}
});