所以我创建了这个评分系统,根据用户点击的星星将1-5号发送到一个文本文件。在同一页面上,我们有一个计数器,用于计算投票数和所有投票的总数。
进度很好,但我想改进一下。
下面是我的代码:<form name="Star" id="Star">
<div id="rating-area" class="shadow">
<img src="star-icon.png" id="thumb1" data-value="1" />
<img src="star-icon.png" id="thumb2" data-value="2" />
<img src="star-icon.png" id="thumb3" data-value="3" />
<img src="star-icon.png" id="thumb4" data-value="4" />
<img src="star-icon.png" id="thumb5" data-value="5" />
</div>
</form>
<script>
jQuery('div#rating-area img').click(function(e){
var val = jQuery(this).data('value') ;
console.log(val) ;
jQuery.post('post.php',{ Star : val },function(data,status){
console.log('data:'+data+'/status'+status) ;
}) ;
}) ;
</script>
<?php
$file = file("textfile.txt");
$textfil = file_get_contents("textfile.txt");
$textfill = str_split($textfil);
echo "Number of votes in file: " . count($textfill) . "<br>";
$sum = 0;
foreach ($textfill as $vote) {
$sum = $sum + intval($vote);
}
echo "Total: " . $sum;
?>
我有点新的这个php,但是否有可能做一个AJAX请求,这样我们就不必重新加载页面,以获得更新的计数数字?
我需要帮助的是创建一个AJAX调用,所以当用户点击一个星号时,页面将从文本文件中调用数据,而无需重新加载整个页面。
我认为我张贴了所有必要的信息,如果没有,请告诉我,我会编辑并尽量给你的信息。
首先,我宁愿将这些信息存储在数据库中而不是文本文件中,但概念是相同的。
1)。创建一个新的PHP,读取文本文件,并获得新的"计数"的投票或"得分"的任何信息,你想发回。为了简单的使用,我只回显这个值。
2)。添加了用户数之后,再添加一些Javascript来获取这个值。
下面的例子给出了一个很好的概念概述(来自W3Schools - http://www.w3schools.com/php/php_ajax_database.asp)。这个例子将使用'txtHint'的css 'ID'替换返回值到网页中。这个特定的例子也会获取整个页面并将其加载到这个ID中,如果您只是将该值回显到浏览器中,这将是很好的。
<script>
function showUser(str)
{
if (str=="")
{
document.getElementById("txtHint").innerHTML="";
return;
}
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("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getuser.php?q="+str,true);
xmlhttp.send();
}
</script>
这应该会帮助你,如果你挣扎着让它工作post回你的代码,可以从那里调试