2011-11-18 59 views
0

我只是先构建它的一面。基本上,我只是希望它自动运行一个外部的PHP/MySQL脚本,在“评级”列中添加+1来表示喜欢的内容。我希望在不重新加载页面的情况下发生,因此AJAX。我从来没有使用过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

你的问题是什么? – gview

+0

这不起作用。 –

+0

发生了什么/没有发生?你期望发生什么? – Marcus

回答

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; 
} 
+0

这引出了一个问题,既然user996494使用jqueryui,为什么不使用jquery来处理ajax调用。 – gview

+0

@gview:我同意。这将是最简单的方法来实现这个工作。 –

+0

gview,oso,你们如何建议我这样做? –