这是我将评级信息发送到textfile.txt的表单。
<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电话:
<?php
$file = file("textfile.txt");
$file_content = file_get_contents("textfile.txt");
$file_content_separated_by_dash = explode("-", $file_content);
echo "Number of votes in file: " . count($file_content_separated_by_dash) . "<br>";
$sum = 0;
foreach ($file_content_separated_by_dash as $vote) {
$sum = $sum + $vote;
}
echo "Total: " . $sum;
?>
我似乎没有掌握这一点。当我运行进度来计算textfile.txt中的投票数时,我只得到第一次投票作为总和。无论我是否重新加载页面。它仍然是出现的第一次投票。我检查了textfile.txt。只要“星级”是“onclick”,它就会自动更新。
以及“票数”。查看某人点击了多少次。它一直保持在1。 我错过了什么?
我还是一个非常新手的PHP。因此,如果我忘记任何必要的信息,请告诉我,我将尝试使用该信息更新帖子。
答案 0 :(得分:1)
您的文本文件内容与代码不匹配。
文本文件中的数字必须用-
分隔才能使用当前代码..
如果您无法修改文本文件插入,请更改此读取代码
<?php
$file = file("textfile.txt");
$file_content = file_get_contents("textfile.txt");
$file_content_separated_by_dash = str_split($file_content);
echo "Number of votes in file: " . count($file_content_separated_by_dash) . "<br>";
$sum = 0;
foreach ($file_content_separated_by_dash as $vote) {
$sum = $sum + intval($vote);
}
echo "Total: " . $sum;
?>
答案 1 :(得分:0)
您可以发布textfile.txt
文件吗?代码似乎没问题,需要检查数据在文本文件中的保存方式。
您的文件没有 - ,它只有数字。
所以你可以使用这段代码
$numbers = file_get_contents("textfile.txt");
$count = strlen($numbers);
echo 'Total votes'.$count;
for($i = 0; $i < count; $i++) {
echo $numbers[$i] . '<br />';
}