在PHP代码中插入并调用JS

时间:2011-12-04 13:41:19

标签: php javascript jquery ajax

我使用旧的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";

1 个答案:

答案 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);
    }
});