Это моя форма, когда я отправляю информацию о рейтинге в свой файл 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. Поэтому, если я забуду любую дополнительную информацию, скажите мне, и я постараюсь обновить сообщение этой информацией.
Содержимое вашего текстового файла не совпадает с кодом. Числа в текстовом файле должны быть разделены -
для работы с текущим кодом.
Если вы не можете изменить свою вставку в текстовый файл, измените код чтения, как это
<?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;
?>
Можете ли вы разместить файл 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 />';
}