从外部文本文件回显时的数学函数

时间:2014-03-25 07:25:48

标签: javascript php html

这是我将评级信息发送到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。因此,如果我忘记任何必要的信息,请告诉我,我将尝试使用该信息更新帖子。

2 个答案:

答案 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 />';
}