制作喜欢/不喜欢AJAX脚本 - 不工作

时间:2011-11-18 18:52:57

标签: php mysql ajax forms sql-like

我只是首先建立它的相似方面。基本上,我只是想让它自动运行一个外部PHP / MySQL脚本,为所喜欢的内容添加+1“评级”列。我希望在不重新加载页面的情况下实现这一点,因此AJAX。我从来没有使用过AJAX,而且我在使用它时遇到了一些麻烦。下面是相关的代码,我在这篇帖子的底部放了一个链接到我正在处理的地方。

以下是开始的表格:

<div id="voting">    
<form>   
  <input name="vote" type='button' onclick="getVote(<?php echo $image['filename'];?>)" value='Like' /> 
    </form>
</div>

这是AJAX的一部分:

<script type="text/javascript">
function getVote(filename)
{
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("voting").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","voting.php"+filename,true);
xmlhttp.send();
}
</script>

最后,应该运行的voting.php脚本:

<?php
//Database Information
$dbhost = "";
$dbname = "";
$dbuser = "";
$dbpass = "";

//Connect to database
mysql_connect ( $dbhost, $dbuser, $dbpass)or die("Could not connect: ".mysql_error());
mysql_select_db($dbname) or die(mysql_error());

$filename = $_GET['filename'];

$query = "UPDATE images SET rating = rating+1 WHERE filename = '$filename'";

mysql_query($query) or die(mysql_error());
mysql_close();

?> 

Here如果它对任何人有任何帮助,它应该继续发布的网站。我真的很感激任何帮助。绝对无能为力,我以前从未使用过AJAX。提前谢谢!

1 个答案:

答案 0 :(得分:2)

我不知道这是你的问题,但你没有向投票网址发送任何参数。

xmlhttp.open("GET","voting.php?filename="+filename,true);

此外,您希望保护该脚本以进行简单的SQL注入形式。

$filename = isset($_GET['filename']) ? mysql_real_escape_string($_GET['filename']) : null ;

if (is_null($filename)) {
    exit;
}