fapchat
@fapchat

Почему функция confirm($txt) возвращает старый(прошлый) текст файла?

Здравствуйте! Вот такая вот возникла проблема:
Вот код для того, чтобы вернуть с помощью функции php результат конфёрма js
<?php
function confirm($txt)
{
?>
<script>
let txt = "<?php echo $txt; ?>";
var confirm = confirm(txt);
$.ajax({
url: 'script.php',
type: 'POST',
data: "confirm=" + encodeURIComponent(confirm)
})
</script>
<?php
return filter_var(file_get_contents('text.txt'), FILTER_VALIDATE_BOOLEAN);
}


Вот файл script.php

<?php
if (isset($_POST['confirm'])) {
$file = 'text.txt';
file_put_contents($file, $_POST['confirm']);
}


Файл text.txt обновляется после каждой перезагрузки страницы с принятием решения в confirm (то есть после выбора между ok и cancel), однако функция confirm($txt)
возвращает старый(прошлый) текст файла, то есть тот, который был до перезаписи файла с помощью file_put_contents. Что делать?
  • Вопрос задан
  • 68 просмотров
Пригласить эксперта
Ответы на вопрос 2
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
...
var confirm = confirm(txt);// здесь получаем тру или фалс, ок...
...
data: "confirm=" + encodeURIComponent(confirm) //здесь его енкодим и отправляем на сервер зачем-то...
...
return filter_var(file_get_contents('text.txt'), FILTER_VALIDATE_BOOLEAN);//читаем файл, получаем из него значение...

При выполнении функции вы выводите в браузер яваскрипт, и тут же запрашиваете содержимое файла. Так как вывод в браузер и выполнение функции жс в браузере происходят с серьезной задержкой, естественно вы получите "старое" значение, причем новое скорее всего будет содержать какой-то бред по типу 'true'/'false' строкой, судя по коду.
Ответ написан
Комментировать
SagePtr
@SagePtr
Еда - это святое
phpfaq.ru/newbie/na_tanke
Читать несколько раз, пока не поймёте смысл
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
25 нояб. 2024, в 18:39
30000 руб./за проект
25 нояб. 2024, в 18:35
30000 руб./за проект
25 нояб. 2024, в 18:33
10000 руб./за проект