从javascript触发php函数

时间:2011-11-17 09:38:16

标签: php javascript mysql facebook-like

我正在尝试从特定网页单独跟踪喜欢我的Facebook页面的人数。为此,我正在使用FB事件。我希望将计数保存到我的本地数据库。

以下是我一直在尝试的代码。但它没有用。

<?php
echo "<html xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:fb=\"http://    www.facebook.com/2008/fbml\">";

echo "<head>";
echo "<script src=\"https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js\"></script>";
echo "<script src=\"http://connect.facebook.net/en_US/all.js#appId=157605600977665&amp;xfbml=1\"></script>";
echo "<script>";

echo "var a = 0;";
echo "$(\"document\").ready(function(){";
echo "FB.Event.subscribe('edge.create', function(href, widget) {";
//not working
echo "window.location=\"1.php?action=add";
echo "});";
echo "});";
echo "</script>";
echo "</head>";

echo "<body>";

if ($action=="add") 
{ 
mysql_query("update likes set count = count + 1 where id=1;");
} 

echo "<div id=\"fb-root\"></div>";
echo "<fb:like href=\"http://www.facebook.com\" send=\"false\" width=\"450\" show_faces=\"false\"></fb:like> <br/>";
echo "</body>";
echo "</html>";

?>

1 个答案:

答案 0 :(得分:1)

您想要使用包含任何url参数的$ _GET变量。

if (isset($_GET['action']) {
   $action = $_GET['action'];
   if ($action == "add") {
     mysql_query("update likes set count = count + 1 where id=1;");
   } 
} // untested, should work though

顺便说一句,您不必回显所有HTML。您可以随时打开和关闭PHP标记。

<html>
<head>
....etc...

<?php
  // do work here
?>

.... more html ...
</html>