我只是先构建它的相似面。基本上,我只是希望它自动运行一个外部 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>
最后,应该运行的 vote.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。提前致谢!
最佳答案
我不知道这是否是您的问题,但您没有向投票网址发送任何参数。
xmlhttp.open("GET","voting.php?filename="+filename,true);
此外,您希望保护该脚本以进行简单形式的 SQL 注入(inject)。
$filename = isset($_GET['filename']) ? mysql_real_escape_string($_GET['filename']) : null ;
if (is_null($filename)) {
exit;
}
关于php - 制作喜欢/不喜欢 AJAX 脚本 - 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8187588/