我只是首先建立它的相似方面。基本上,我只是想让它自动运行一个外部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。提前谢谢!
答案 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;
}