所以我创建了这个评级系统,它将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调用,这样当用户点击一个星号时,该页面将从文本文件中调用数据而不会重写整个页面。
我想我发布了所有必要的信息,如果没有,请告诉我,我会编辑并尝试向您提供信息。
答案 0 :(得分:1)
首先,我宁愿将这些信息存储在数据库而不是文本文件中,但概念是相同的。
1。)创建一个新的PHP,读取文本文件并获取新的&#39; Count&#39;投票或分数&#39;无论你要发送什么信息。对于简单的用法,我只是回应这个值。
2。)添加一些Javascript以在我们添加用户数后获取此值。
以下示例概述了概念(来自W3Schools - http://www.w3schools.com/php/php_ajax_database.asp)。此示例将使用css&#39; ID&#39;将返回值替换为网页。 &#39; txtHint&#39;。这个特殊的例子也可以获取整个页面并将其加载到此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>
这应该会帮助你,如果你努力让它工作回发你的代码并且可以从那里进行调试。